我在这里遇到以下错误:
error: (-215) scn == 3 || scn == 4 in function cv::cvtColor
这是我的代码
def detectBoxes(img):
image = np.asarray(img)
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
gradient = cv2.Laplacian(gray, cv2.CV32F)
kernel = np.ones((15,15),np.uint8)
closing = cv2.morphologyEx(gradient, cv2.MORPH_CLOSE, kernel)
closing = cv2.cvtColor(closing, cv2.COLOR_BGR2GRAY)
im2, cnts, hier = cv2.findContours(closing, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE)
我认为是因为findContours需要另一种颜色转换,但是我不确定是哪种颜色转换。 这里有什么线索吗?谢谢
答案 0 :(得分:0)
@ZdaR在评论中说:
这是因为cv2.findContours()期望图像没有浮点值,但是您的关闭似乎是32位浮点类型,您可以通过close.dtype来确认,如果是,那么请将其转换为uchar类型在传递到findcontours之前,使用闭合= np.astype(np.uint8)。