Я следил за this tutorial отслеживания объектов OpenCV и сумел заставить код работать на моем ноутбуке, как в Windows, используя Visual Studio, так и на моей виртуальной машине Ubuntu (с использованием CMake). Теперь я пытаюсь запустить его на моей малине Pi (работает Raspbian). cmake .
и make
команды, кажется, работает нормально, но когда я пытаюсь запустить исполняемый файл, я получаю следующее сообщение об ошибке:openCV Ошибка: утверждение не выполнено (scn == 3 || scn == 4) на Raspberry Pi
[email protected] ~/Desktop/Track $ ./TrackObj
init done
opengl support available
OpenCV Error: Assertion failed ((scn == 3 || scn == 4) && (depth == CV_8U || depth == CV_32F)) in cvtColor, file /home/pi/opencv-2.4.10/modules/imgproc/src/color.cpp, line 3961
terminate called after throwing an instance of 'cv::Exception'
what(): /home/pi/opencv-2.4.10/modules/imgproc/src/color.cpp:3961: error: (-215) (scn == 3 || scn == 4) && (depth == CV_8U || depth == CV_32F) in function cvtColor
Aborted
Я посмотрел на this question и похож на него, но это не помогло мне решить эту проблему.
Исходный код доступен здесь:
Я слышал, что проблема может быть с драйверами камеры или камеры, так что я попытался с помощью USB-камеры а также pi-камеру, и я также попытался изменить линию capture.open(0);
на capture.open("someMovie.mp4");
, поэтому вместо того, чтобы открыть прямой эфир, он будет работать в на выходе видео, но он все равно дает мне ту же ошибку.
Возможно, попробуйте с предварительно загруженным изображением, которое вы абсолютно уверены в размере, формате и т. Д. Это потому, что он может быть совершенно неожиданным образом прочитан с веб-камеры. – GPPK
Можете ли вы уточнить? Вы имеете в виду, что я должен изменить 'Capture.open (0);'? – DMEM
Вы используете камеру Малины Pi? – theoB610