Skip to content
Advertisement

cv2.error (-215:Assertion failed) reader.ptr != NULL in function cvDrawContours

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.

User contributions licensed under: CC BY-SA
2 People found this is helpful
Advertisement