Я пытаюсь настроить приложение для сшивания плоских изображений, но если я предоставлю брошюровщик ниже PlaneWarper, приложение вылетает с исключением из-за плохого доступа.Я также узнал, что функция поиска ORB лучше всего подходит для плоского сшивания, но использование OrbFeatureFinder также приводит к сбою приложения в функции стежка.Я знаю, что не до конца осознаю, как работает конвейер сшивания, поэтому, если кто-то может помочь мне разобраться в проблеме, я был бы признателен.
vector<Mat> imgs;
cv::Mat stitch (vector<Mat>& images)
{
imgs = images;
Mat pano;
Ptr<Stitcher> stitcher = Stitcher::create(Stitcher::SCANS, true);
stitcher->setPanoConfidenceThresh(0.8f);
stitcher->setFeaturesMatcher(makePtr<cv::detail::AffineBestOf2NearestMatcher>(true, true, 0.8f));
Stitcher::Status status = stitcher->stitch(imgs, pano);
if (status != Stitcher::OK)
{
cout << "Can't stitch images, error code = " << int(status) << endl;
//return 0;
}
return pano;
}
Я протестировал на своем Mac программу stitching_detailed с Orbпоиск функций и плоскостная деформация, и это дало мне отличные результаты, поэтому я попытался запустить stitching_detailed.cpp в интерфейсе приложения iOS, но это вызывает все типы сбоев, поэтому я пытаюсь сделать это сейчас.
сшивание работает хорошо, но кое-где есть некоторые искажения, и использование функции поиска ORB с планарной деформацией устраняет ее на моем Mac.