So I’m trying to create a license plate detection program and I have been following a guide for that, (https://github.com/nicknochnack/ANPRwithPython/blob/main/ANPR%20-%20Tutorial.ipynb) however I am currently running into a problem.
img = cv2.imread('image4.jpg') gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) bfilter = cv2.bilateralFilter(gray, 11, 17, 17) #Noise reduction edged = cv2.Canny(bfilter, 30, 200) #Edge detection keypoints = 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 = None for contour in contours: approx = cv2.approxPolyDP(contour, 10, True) if len(approx) == 4: location = approx break mask = np.zeros(gray.shape, np.uint8) new_image = cv2.drawContours(mask, [location], 0,255, -1) new_image = cv2.bitwise_and(img, img, mask=mask)
I have also tried to change “location” to 0 or [0] but to no success.
Advertisement
Answer
Found the “solution” to this, although it’s not much an Solution. The reason this kept happening is because the images I have been testing with, didn’t have any recognizable shapes in it, so since it was not able to set “location”, it also wasn’t able to call the function properly. Hopefully someone who runs into this issue sees this and checks their data.