Я работаю над OMR Bubble Scanner, используя OpenCV.Я получаю ошибку, которую не могу преодолеть долгое время.Может кто-нибудь, пожалуйста, пройдите через это и дайте мне знать.Ниже я упомянул ожидаемый результат.Пожалуйста, пройдите код и исправьте ошибку, если это возможно.Спасибо
from imutils.perspective import four_point_transform
import matplotlib.pyplot as plt
from imutils import contours
import random
import numpy as np
import argparse
import imutils
import cv2
ANSWER_KEY={}
for i in range(45):
ANSWER_KEY[i]=random.choice([0,1,2,3])
image = cv2.imread('H:/download.png')
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
blurred = cv2.GaussianBlur(gray, (5, 5), 0)
edged = cv2.Canny(blurred, 75, 120)
kernel = cv2.getStructuringElement(cv2.MORPH_CROSS,(3,3))
dilated = cv2.dilate(edged,kernel,iterations = 8)
cnts, hiers = cv2.findContours(dilated.copy(),
cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_SIMPLE)
cnts = cnts[1] if imutils.is_cv2() else cnts[0]
docCnt = None
if len(cnts) > 0:
image, contours = cv2.findContours(dilated.copy(),cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
for c in cnts:
peri = cv2.arcLength(c, True)
approx = cv2.approxPolyDP(c, 0.02 * peri, True)
if len(approx) == 4:
docCnt = approx
break
print(docCnt)
Вывод:
None
Ожидаемый вывод:
array([[[ 142, 183]],
[[ 137, 3767]],
[[2896, 3827]],
[[2957, 220]]], dtype=int32)