Я работаю над инструментом для сшивания с использованием OpenCV и CUDA, в настоящее время просто пытаюсь сшить два перекрывающихся изображения.Сложность с смешиванием двух изображений после вычисления гомографии в OpenCV
Изображения:
Мой процесс выглядит следующим образом:
- Функция обнаружения на обоих изображениях (ОРБ)
- корреляции Matching с помощью грубой силы (Хэмминга)
- Оценка RANSAC для получения матрицы гомографии
- Искривление второго изображения на матрице гомографии
Я довольно счастлив, что эти шаги правильных, используя OpenCV нарисовать черное изображение, а затем рисовать кадры двух изображений после того, как этот процесс приводит к следующему результату:
Это выглядит правильно. Теперь у меня проблема, это смешение. Я хочу использовать перьевое смешение, но результаты, которые я получаю, совершенно ошибочны. Я пробовал следующий код, где img1 - это cv :: Mat первого изображения, а img2Warped - это cv :: Mat второго изображения после деформирования по матрице H, finalImg - пустой cv :: Mat.
auto blender = detail::Blender::createDefault(detail::Blender::FEATHER, true);
auto combinedCorners = std::vector<Point>{ image1Corners[0], image2Corners[0] };
auto combinedSizes = std::vector<cv::Size>{ image1Size, image2Size };
blender->prepare(combinedCorners, combinedSizes);
img1.convertTo(img1, CV_16SC3);
img2Warped.convertTo(img2Warped, CV_16SC3);
blender->feed(img1, Mat::ones(img1.size(), CV_8U), image1Corners[0]);
blender->feed(img2Warped, Mat::ones(img2Warped.size(), CV_8U), image2Corners[0]);
blender->blend(finalImg, Mat());
Этот код производит следующий вывод:
Может кто-нибудь посоветовать, где я собираюсь плохого смешивания? Я не могу найти какие-либо примеры или помочь в Интернете, используя технику смешивания, которую я пытаюсь использовать здесь.
Я не знаю, решит ли это вашу проблему или нет, но маска, которую вы проходите, Mat :: ones (img1.size(), CV_8U), должна быть фактически деформирована и маскироваться после поиска шва. Это не все изображения. Перед смешиванием необходимо использовать шовный искатель –