Canny OpenCV之后的矩形提取

时间:2016-10-16 18:03:38

标签: python opencv computer-vision image-recognition edge-detection

我觉得我应该如何配置Canny边缘检测。也许有人可以带领我走上正确的道路。

我试图检测菜单中突出显示的选项。我有两个图像,它可以在一个图像上运行,但无论我如何试图摆弄这些参数,我都无法让它适用于另一个图像。当查看边缘图片输出时,矩形边缘看起来很清晰,所以我不明白它为什么不挑选矩形。

我一直在使用的图片是:

http://i.imgur.com/eLC0Jep.png

http://i.imgur.com/y2RctK3.png

我的代码在这里:

import cv2

img = cv2.imread('sublime.png')

edges = cv2.Canny(img, 210, 255)
copy = edges.copy()

img2, contours, hierarchy = cv2.findContours(copy, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)

image = 0

for cnt in contours:
    approx = cv2.approxPolyDP(cnt,0.01*cv2.arcLength(cnt,True),True) #Removes tiny deviations, tries to go for straight lines.
    if len(approx) == 4: #Lines, should be square.
        x, y, w, h = cv2.boundingRect(cnt)
        if w > 10:
            print("Width and height: ", w, h)
            image = img[y:y+h, x:x+w]

cv2.imshow('image', img)
cv2.imshow('edges', edges)
cv2.imshow('area', image)

cv2.waitKey(0)
cv2.destroyAllWindows()

0 个答案:

没有答案