Оба входных изображения должны иметь CV_8UC1 в функции 'cv :: StereoBMImpl :: compute' - PullRequest
0 голосов
/ 18 апреля 2019

Я снимаю изображения с камеры беспилотника через Wi-Fi. Ниже приведен мой код на python с использованием функций OpenCV (другие задачи OpenCV работают хорошо с теми же входными изображениями), и я получаю сообщение об ошибке

Both input images must have CV_8UC1 in function 'cv::StereoBMImpl::compute'

            if frameno == 1:
                imagen = cv2.cvtColor(numpy.array(frame1.to_image()), cv2.COLOR_RGB2BGR) 
                frameno = frameno+1
                print frameno
            if frameno == 0:
                imageo = cv2.cvtColor(numpy.array(frame1.to_image()), cv2.COLOR_RGB2BGR)
                frameno = frameno+1
                print frameno
            stereo = cv2.StereoBM_create(numDisparities = 16, blockSize = 17)
            disparity = stereo.compute(imagen,imageo)

Я получаю сообщение об ошибке в функции stereo.compute. Ну, я использую тот же frame1.to_image() для генерации входных кадров для других функций OpenCV, и он прекрасно работает там, но когда я начал пробовать код стерео неравенства, он генерирует ошибку, и я не знаю, почему. Я видел другую ветку здесь CV_8U1 error stackoverflow но этот парень не столкнулся с проблемой после того, как использовал преобразованные изображения, но я столкнулся с ошибкой. Пожалуйста, дайте мне знать, что я должен делать здесь.

1 Ответ

0 голосов
/ 18 апреля 2019

Только что заметил, что преобразование цвета должно быть COLOR_RGB2GRAY. Это решило проблему.

...