Сшиватель 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

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