У меня есть два изображения с площадью перекрытия около 25% — но сшивание не удается.
Как я могу справиться с этой проблемой?
Я пытался использовать orb и surf, а также менял порог. Есть ли другие варианты, которые я должен рассмотреть?
Mat pano;
Stitcher stitcher = Stitcher::createDefault(try_use_gpu=false);
//Stitcher::Status status = stitcher.stitch(imgs, pano);
//stitcher.setWarper(new PlaneWarper());
stitcher.setWarper(new SphericalWarper());
stitcher.setFeaturesFinder(new detail::SurfFeaturesFinder(1000,3,4,3,4));
//stitcher.setFeaturesFinder(new detail::OrbFeaturesFinder());
stitcher.setRegistrationResol(0.1);
stitcher.setSeamEstimationResol(0.1);
stitcher.setCompositingResol(0.6);
stitcher.setPanoConfidenceThresh(1);
stitcher.setWaveCorrection(true);
stitcher.setWaveCorrectKind(detail::WAVE_CORRECT_HORIZ);
stitcher.setFeaturesMatcher(new detail::BestOf2NearestMatcher(false,0.3));
stitcher.setBundleAdjuster(new detail::BundleAdjusterRay());
tstart = clock();
Stitcher::Status status = stitcher.stitch(imgs, pano);
25% перекрытия определенно недостаточно. 40% дадут несколько лучшие результаты, но все еще недостаточно хорошие. Если вы хотите хорошего перекрытия, попробуйте что-то от 60% до 80%. Важно, чтобы следующее изображение в вашей последовательности, которое вы хотите соединить вместе, перекрывало центральную область предыдущего, поскольку нет / не должно быть никаких искажений. Например, при 80% -ном перекрытии не только это происходит, но и центральные области обоих изображений сближаются, поэтому вы можете пренебрегать искажениями и находить множество совпадений при условии, что качество текстур ваших изображений позволяет это. Мой совет — сначала взглянуть на образцы, предоставленные самой библиотекой. Вы можете найти последнюю версию на https://github.com/Itseez/opencv/tree/master/samples/cpp/stitcher.cpp а также https://github.com/Itseez/opencv/blob/master/samples/cpp/stitching_detailed.cpp. Тогда тоже хорошо копаться внутри самого источника (https://github.com/Itseez/opencv/blob/master/modules/stitching/src/stitcher.cpp), а также найдите предоставленную документацию в справочном руководстве OpenCV (онлайн или загрузите в формате PDF).
Я бы попробовал с большей площадью перекрытия, то есть> 40%.
Попробуй с эти картины, он должен работать.