Используя opencv выведите ожидаемый результат - PullRequest
0 голосов
/ 20 июня 2019

Я работаю над 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...