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 измерения, строки, столбцы и глубину.