【发布时间】:2019-01-12 21:55:34
【问题描述】:
我正在编写代码,但无法使用函数 cv2.findContours,因为它有任何问题。按照代码:
import cv2
import matplotlib.pyplot as plt
import numpy as np
lower1 = np.array([0,118,0])
upper1 = np.array([120,198,166])
lower2 = np.array([45,0,0])
upper2 = np.array([70,255,255])
kernelOpen = np.ones((7,7))
kernelClose = np.ones((20,20))
img = cv2.imread ('inco.jpg')
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
mask1 = cv2.inRange(hsv, lower1, upper1)
res1 = cv2.bitwise_not(img, img, mask = mask1)
cv2.imwrite('resultado_bitwise_not.png', res1)
img1 = cv2.imread ('resultado_bitwise_not.png')
hsv2 = cv2.cvtColor(img1, cv2.COLOR_BGR2HSV)
mask2 = cv2.inRange(hsv2, lower2, upper2)
res2 = cv2.bitwise_and(img1, img1, mask = mask2)
cv2.imwrite('resultado_final.png', res2)
mask3 = cv2.morphologyEx (res2, cv2.MORPH_OPEN, kernelOpen)
mask4 = cv2.morphologyEx (mask3, cv2.MORPH_CLOSE, kernelClose)
_, conts, h = cv2.findContours(mask4, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
cv2.drawContours(img, conts, -1,(0,255,0),3)
cv2.imwrite('mask4.png',mask4)
还有错误:
_, conts, h = cv2.findContours(mask4, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
error: OpenCV(3.4.1) C:\projects\opencv-python\opencv\modules\imgproc\src\contours.cpp:199: error: (-210) [Start]FindContours supports only CV_8UC1 images when mode != CV_RETR_FLOODFILL otherwise supports CV_32SC1 images only in function cvStartFindContours_Impl
【问题讨论】:
标签: python python-2.7 opencv image-processing