2015-08-13 3 views
1

В последнее время я пытаюсь написать простую программу, которая может обнаружить лицо. Я никогда не делал этого раньше, поэтому для меня было более теплым, чтобы понять это. Но я все время получаю ошибки с каждым другим образцом, который я пробую. Я даже скопировал образцы прямо с сайта OpenCV, и у меня все еще есть ничего, кроме ошибок, которые для меня не имеют смысла.Ошибки обнаружения лиц в cv2

Я скопировал свой код именно с этого сайта http://docs.opencv.org/master/d7/d8b/tutorial_py_face_detection.html#gsc.tab=0

, и я получаю эту ошибку

OpenCV Error: Assertion failed (scn == 3 || scn == 4) in cvtColor, file /build/buildd/opencv-2.4.9+dfsg/modules/imgproc/src/color.cpp, line 3737 
Traceback (most recent call last): 
    File "test.py", line 8, in <module> 
    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) 
cv2.error: /build/buildd/opencv-2.4.9+dfsg/modules/imgproc/src/color.cpp:3737: error: (-215) scn == 3 || scn == 4 in function cvtColor 
+0

Это зависит от ошибки. Пожалуйста, поделитесь ошибкой для кода выше. – sunny

+0

Я отредактировал мой вопрос. У меня возникли проблемы с созданием скрипта, поэтому я просто разместил веб-сайт, на котором я скопировал скрипт и ошибку. – jumbi533

+0

Похоже, что с этим конкретным скриптом ваше изображение не подходит для вызова кода на нем, который вы есть. Проверь это. http://stackoverflow.com/questions/20822288/python-opencv-cv2-opencv-error-assertion-failed-scn-3-scn-4-in-unkno – sunny

ответ

2

Чтобы использовать функцию «cvtColor», изображение должно быть 3 или 4 канала. Например:

  1. Это преобразовать цветное изображение в серое изображение (SRC имеет 3 канала, но ДСТ имеет 1 канал)

    cvtColor (SRC, ДСТ, CV_BGR2GRAY);

  2. Это для преобразования цвета из RGB в пространство YCrCb (SRC и DST и имеет 3 канала)

    cvtColor (SRC, ДСТ, CV_BGR2YCrCb);

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