【发布时间】:2017-09-14 18:12:26
【问题描述】:
我正在处理这张图片:
我使用了以下代码:
input_img = cv2.imread(input_image)
img = cv2.imread(input_image, 0)
kernel = np.ones((5,5),np.uint8)
# morphological_img = cv2.morphologyEx(img, cv2.MORPH_GRADIENT, kernel)
# # morphological_img = cv2.threshold(morphological_img, morphological_img, 128, 255, cv2.THRESH_BINARY_INV)
# # img = cv2.morphologyEx(img, cv2.MORPH_CLOSE, kernel)
# morphological_img = cv2.medianBlur(morphological_img, 5)
canny_img = cv2.Canny(input_img, 100, 200)
_, contours, hierarchy = cv2.findContours(canny_img, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE) # get contours
得到了这些轮廓:
我已经尝试了所有这些功能,例如模糊、阈值处理等,但我没有得到我期望的轮廓。我需要找到黑色轮廓和紫色轮廓,如容器,但我得到的是文本周围的轮廓,而不是它们的背景容器。
对不起,我的英语不好。如果您还需要什么,请询问。
【问题讨论】:
-
@sturkmen 感谢您的评论....同样的问题我在那里注意到....它在前景中找到轮廓而不考虑背景颜色正在变化的轮廓......
-
对不起,我没有仔细阅读您的问题。您能在图片上显示所需的结果吗?
-
imgur.com/a/ECX3N 请找到所需结果的链接。
-
并不是说你不能用图像处理和视觉来完成这个任务,但是实际解析 HTML 以获得你想要的东西不是更容易吗?大多数图像处理方法对此类问题的问题是此类模板之间的颜色变化。对于这样的页面,最常见的三种颜色似乎是背景颜色,因此如果您确实想使用纯图像处理,可以使用直方图选择三种最常见的颜色并分别围绕每种颜色创建轮廓。跨度>
标签: python opencv opencv-contour