ช่วยด้วยครับ python เรื่องการเขียนโปรแกรม

import numpy as np
import cv2

img = cv2.imread('e05.jpg')
gray = cv2.imread('e05.jpg',0)

ret,thresh = cv2.threshold(gray,127,255,1)
contours,h = cv2.findContours(thresh,1,2)

for cnt in contours:
    approx = cv2.approxPolyDP(cnt,0.01*cv2.arcLength(cnt,True),True)
    print len(approx)
    if len(approx)==5:
        print "pentagon"
        cv2.drawContours(img,[cnt],0,255,-1)
    elif len(approx)==3:
        print "triangle"
        cv2.drawContours(img,[cnt],0,(0,255,0),-1)
    elif len(approx)==4:
        print "square"
        cv2.drawContours(img,[cnt],0,(0,0,255),-1)
    elif len(approx) == 9:
        print "half-circle"
        cv2.drawContours(img,[cnt],0,(255,255,0),-1)
    elif len(approx) > 15:
        print "circle"
        cv2.drawContours(img,[cnt],0,(0,255,255),-1)


cv2.imshow('img',img)
cv2.waitKey(0)
cv2.destroyAllWindows()

ผมเขียนโค้ดไปแบบนี้ครับ เพื่ออ่านค่าของรูปแล้วบอกว่ามันคือ สี่เหลี่ยม สามเหลี่ยม หรือ วงกลม
แต่ผมใส่รูปไหนมันก็ contours นับออกมาได้ 4 เลยได้เป็น square ออกมาหมดเลย

ตัวอย่างรูปครับ
https://scontent.fbkk5-5.fna.fbcdn.net/v/t34.0-12/15554991_1392831507396779_609164138_n.jpg?oh=000149c8299a032e60661a20e5754fbe&oe=585341FD

https://scontent.fbkk5-5.fna.fbcdn.net/v/t34.0-12/15423549_1392831440730119_395920135_n.jpg?oh=b073a2842578478e36e15339ce3614b4&oe=58542F41

https://scontent.fbkk5-5.fna.fbcdn.net/v/t34.0-12/15555744_1392949840718279_1807564224_n.jpg?oh=e274bb68c0301dfd38aaf6179fafc5fa&oe=58533774

https://scontent.fbkk5-5.fna.fbcdn.net/v/t34.0-12/15494126_1392949874051609_728501848_n.jpg?oh=1fb26614fc1de26966861785b6cd391b&oe=5854638E

https://scontent.fbkk5-5.fna.fbcdn.net/v/t34.0-12/15424506_1392949910718272_75447510_n.jpg?oh=4dec6dc8f8ba04d2c26984922ea0a435&oe=58543229
แก้ไขข้อความเมื่อ
แสดงความคิดเห็น
โปรดศึกษาและยอมรับนโยบายข้อมูลส่วนบุคคลก่อนเริ่มใช้งาน อ่านเพิ่มเติมได้ที่นี่