ошибка opencv в drawcontours — код python для обнаружения движения глаз

#numpy #opencv

#numpy #opencv

Вопрос:

Я получаю ошибку при запуске кода python для обнаружения движения глаз, я следую инструкциям в https://www.youtube.com/watch?v=kbdbZFT9NQI

 #https://www.youtube.com/watch?v=kbdbZFT9NQI
import cv2
import numpy
cap = cv2.VideoCapture("C:\Users\sinsbv\Desktop\Project\Kaggle\Tutorial_Mini_Project\open_cv\eye_recording.flv")
while True:
    ret,frame = cap.read()
    roi = frame[269:795,537:1416]
    gray_roi = cv2.cvtColor(roi,cv2.COLOR_BGR2GRAY)
    gray_roi = cv2.GaussianBlur(gray_roi , (7  , 7) ,0)
    _,threshold = cv2.threshold(gray_roi,5,255,cv2.THRESH_BINARY_INV)
    _, contours = cv2.findContours ( threshold , cv2.RETR_LIST, cv2.CHAIN_APPROX_SIMPLE )
    for cnt in contours:
        # ctr = numpy.array(cnt).reshape((-1,1,2)).astype(numpy.int32)
        cv2.drawContours(roi,cnt , -1,(0,0,255) ,3)

    cv2.imshow("threshold" , threshold)
    cv2.imshow("gray roi" , gray_roi)
    cv2.imshow("Roi" , roi)
    key = cv2.waitKey(30)
    if key == 27:
        break


cv2.destroyAllWindows()
  

ожидаемый результат — обнаружение движения глаз
фактический результат — ошибка ниже,

Обратная трассировка (последний последний вызов): файл «C:/Users/sinsbv/Desktop/Project/Kaggle/Tutorial_Mini_Project/open_cv/open_cv.py «, строка 14, в cv2.drawContours(roi, cnt, -1,(0,0,255),3) cv2.ошибка: OpenCV(4.0.0) C:projectsopencv-pythonopencvmodulesimgprocsrcdrawing.cpp:2509 : ошибка: (-215: ошибка утверждения) npoints > 0 в функции ‘cv::drawContours’

Комментарии:

1. Это contours, _ = cv2.findContours (threshold, cv2.RETR_LIST, cv2.CHAIN_APPROX_SIMPLE) , смотрите документ .

2. хорошо, позвольте мне попробовать это.

3. это сработало!! спасибо, Ханширсе 🙂