Python-OpenCV cv2 Ошибка OpenCV: утверждение не выполнено (scn == 3 || scn == 4) в неизвестной функции, файл.. \.. \..\modules\imgproc\src\color.cpp

Я пытаюсь изучить контуры в python с помощью cv2.

Я попробовал следующий код, приведенный в учебном пособии

import cv2
import numpy as np
from matplotlib import pyplot as plt

im = cv2.imread('C:\Users\Prashant\Desktop\test.jpg')
imgray = cv2.cvtColor(im,cv2.COLOR_BGR2GRAY)
ret,thresh = cv2.threshold(imgray,127,255,0)
image, contours, hierarchy = cv2.findContours(thresh,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)
img = cv2.drawContour(im, contours, -1, (0,255,0), 3)
cv2.imshow('Image1',img)

Я получаю ошибку, которой я не могу найти нигде... любезную помощь.

File "C:\Python27\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py", line 540, in runfile
OpenCV Error: Assertion failed (scn == 3 || scn == 4) in unknown function, file ..\..\..\modules\imgproc\src\color.cpp, line 3402
Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
   execfile(filename, namespace)
 File "C:/Users/Prashant/.spyder2/.temp.py", line 15, in <module>
   imgray = cv2.cvtColor(im,cv2.COLOR_BGR2GRAY)
 cv2.error: ..\..\..\modules\imgproc\src\color.cpp:3402: error: (-215) scn == 3 || scn == 4

любезно помогите мне в этом. Спасибо.

Новичок

Ответы

Ответ 1

он говорит, что ваше входное изображение должно иметь 3 или 4 канала перед применением функции cv2.cvtColor.

поэтому проверьте форму изображения перед тем, как применить функцию print im.shape. если результат None type (в большинстве случаев это проблема), изображение неправильно загружено, скорее всего, потому что ваш путь неправильный.

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