我在尝试创建一个车牌检测程序,并一直在遵循一个指南,(https://github.com/nicknochnack/ANPRwithPython/blob/main/ANPR%20-%20Tutorial.ipynb)然而我现在遇到了一个问题。
img = cv2.imread('image4.jpg')gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)bfilter = cv2.bilateralFilter(gray, 11, 17, 17) #Noise reductionedged = cv2.Canny(bfilter, 30, 200) #Edge detectionkeypoints = cv2.findContours(edged.copy(), cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)contours = imutils.grab_contours(keypoints)contours = sorted(contours, key=cv2.contourArea, reverse=True)[:10]location = Nonefor contour in contours: approx = cv2.approxPolyDP(contour, 10, True) if len(approx) == 4: location = approx breakmask = np.zeros(gray.shape, np.uint8)new_image = cv2.drawContours(mask, [location], 0,255, -1)new_image = cv2.bitwise_and(img, img, mask=mask)
我也尝试将“location”更改为0或[0],但没有成功。
回答:
找到了这个问题的“解决方案”,虽然这并不是一个真正的解决方案。之所以会一直发生这种情况,是因为我用来测试的图像中没有任何可识别的形状,所以由于无法设置“location”,它也无法正确调用函数。希望遇到这个问题的人能看到这一点并检查他们的数据。