我正在努力寻找此图片中的轮廓:enter image description here
这是我的代码:
import numpy as np
import cv2
im = cv2.imread('test.jpg')
##imgray = cv2.cvtColor(im, cv2.COLOR_BGR2GRAY)
cv2.namedWindow('gray',cv2.WINDOW_NORMAL)
cv2.imshow('gray',im)
cv2.waitKey()
ret, thresh = cv2.threshold(imgray, 0, 255,
cv2.THRESH_BINARY+cv2.THRESH_OTSU)
_, contours, _ = cv2.findContours(thresh, cv2.RETR_LIST,
cv2.CHAIN_APPROX_NONE)
print ("number of countours detected before filtering %d -> "%len(contours))
new = np.zeros(im.shape)
new = cv2.drawContours(im,contours,-1,(0,0,255))
cv2.namedWindow('Display',cv2.WINDOW_NORMAL)
cv2.imshow('Display',new)
cv2.waitKey()
问题:1。制作的图像总是全黑,从不显示任何东西,只是纯黑色图像。通过我的描述你可以意识到我是图像处理的新手。我试图用红色显示身体轮廓,但没有出现。
我正在使用open cv 3.4.0和python 3.6
欢迎任何建议/解决方案,谢谢。
答案 0 :(得分:0)
您必须使用cv2.RETR_LIST
,而不是使用cv2.RETR_EXTERNAL
。
cv2.RETR_LIST
。cv2.RETR_EXTERNAL
。您可以在THIS LINK
上找到有关此内容的更多信息