Сшиватель OpenCV не может сшить неискаженные изображенияC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Сшиватель OpenCV не может сшить неискаженные изображения

Сообщение Anonymous »

Я пытаюсь сшить панораму с помощью камеры мобильного телефона с подключаемым широкоугольным объективом с углом обзора 170 градусов. Полученная фотография искажена («рыбий глаз»). Я понимаю, что для сшивания этих фотографий с помощью Stitcher::stitch(InputArrayOfArrays images, OutputArray pano) они должны быть сначала неискажены.

Сначала я сделал undistort(InputArray src, OutputArray dst, InputArray cameraMatrix, InputArray distCoeffs, InputArray newCameraMatrix=noArray() ) и сохраните результаты в файлы jpg. Затем я прочитал изображения в формате jpg, сшил их в панорамное изображение, и это сработало хорошо.

Далее я объединил весь процесс в один процесс. Поэтому я не сохранил неискаженное изображение, а сохранил его в cv::Mat и использовал его в качестве входных данных для сшивки. Это происходит с кодом ошибки ERR_NEED_MORE_IMGS.

Мой вопрос: почему это работает, если вход сшивателя (ImgArray) поступает из imread, но происходит сбой, если ввод поступает непосредственно из неискаженного вывода? Как заставить работать второй случай?

//Load photo source (distorted)
Mat imageDistorted, imageUndistorted;
vector ImgArray;

for (int p=1; p

Подробнее здесь: https://stackoverflow.com/questions/396 ... ted-images
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»