2015-07-24 2 views
1

Я реализовал этот код на модуль RaspberryPi читать PNG изображения из папки и преобразовать его в серый цвет, код выглядит следующим образом:OpenCV, питон и RaspberryPi

x = glob.glob("/home/pi/pngimages/ss*png") 

for imagefile in x[0300:0302]: 

img = cv2.imread(imagefile) 

gray = cvt.cvtColor(img,cv2.COLOR_BGR2GRAY) 

, но я получаю следующее сообщение об ошибке :

Ошибка OpenCV: утверждение не выполнено (scn == 3 || scn == 4) в cvtColor, файл /home/pi/opencv-2.4.10/modules/imgproc/src/color.cpp, строка 3205 Traceback (последний последний вызов): Файл в сером = cv2.cvtColor (фрейм, cv2.COLOR_BGR2GRAY) cv2.error: /home/pi/opencv-2.4.10/modules/imgproc/src/color.cpp:3739: ошибка: (-215) scn == 3 || scn == 4 в функции cvtColor

+0

У вас попробовал печать 'imagefile' перед' imread'? Ваш вызов glob может возвращать файлы формы 'sstextpng'. Вероятно, лучше всего сделать это 'ss * .png' и повторить. –

+0

x = glob.glob ("/ home/pi/png_images/ss * .png") для файла изображения в x [0300: 0302]: ... это то, что я использую, но то, что я мог наблюдать, было cvt.cvtColor() функция работает для одного изображения, но когда цикл работает для второго изображения, я получаю эту ошибку ..? – prinks

ответ

1

Обычно это утверждение происходит, если изображение None. Сначала проверьте правильность чтения изображения.

x = glob.glob("/home/pi/pngimages/ss*png") 

for imagefile in x[0300:0302]: 
    img = cv2.imread(imagefile) 
    # You can do a print img.shape here if you want to see what's going on 
    # If it returns NULL, something's wrong with your image or the path or something else 
    if img: 
     gray = cvt.cvtColor(img,cv2.COLOR_BGR2GRAY) 

Если вам ничего не делать, потому что IMG является None, проверьте папку и убедитесь, что он ищет правильные образы

Посмотрите здесь, а также: Python-OpenCV cv2 OpenCV Error: Assertion failed (scn == 3 || scn == 4) in unknown function, file ..\..\..\modules\imgproc\src\color.cpp

Смежные вопросы