Функция cv2.imshow() выдает ошибку подтверждения

Вышеуказанная ошибка сохраняется даже после обновления моей библиотеки opencv, а также удаления и переустановки несколько раз.

Любые другие советы, чтобы исправить эту ошибку?

Это мой исходный код, функция cv2.imshow() начала выдавать мне ошибку.

cap = cv2.VideoCapture(0)
while True:
    _, frame = cap.read()

    sobelx = cv2.Sobel(frame, cv2.CV_64F, 1, 0, ksize=5)
    sobely = cv2.Sobel(frame, cv2.CV_64F, 0, 1, ksize=5)
    cv2.imshow('frame', frame)
    cv2.imshow('sobelx', sobelx)
    cv2.imshow('sobely', sobely)

    if cv2.waitKey(5) & 0xFF == 27:
        break

 cv2.destroyAllWindows()
 cap.release()

Сообщение об ошибке, которое я получаю:

    cv2.imshow('sobelx', sobelx)
    cv2.error: OpenCV(4.0.0) C:\projects\
    opencv-python\opencv\modules\highgui\src\window_w32.cpp:1230: 
    error: (-215:Assertion failed) dst.data == (uchar*)dst_ptr in function 'cvShowImage'

С другой стороны, функция cv2.imshow() работает правильно для приведенного ниже кода. Обратите внимание: приведенный ниже код не применяет никаких фильтров, таких как лапласиан или sobel, к видео-каналу.

cap = cv2.VideoCapture(0)
while True:
    _, frame = cap.read()
    cv2.imshow('frame', frame)

    if cv2.waitKey(5) & 0xFF == 27:
        break

cv2.destroyAllWindows()
cap.release()

1 ответ

В этом обсуждении проблемы Github было упомянуто, что эта ошибка была исправлена ​​в OpenCV 4.0.1. Судя по полученной ошибке, у вас 4.0.0, поэтому может потребоваться другое обновление.

Другие вопросы по тегам