У меня есть функция в моем проекте, который будет делать стежки, функция работает нормально, это очень просто:OpenCV сшивания с бесплатной библиотекой DLL
Mat output(m_Img, true), pano; // a panaoramic image
bool try_use_gpu = true;
Stitcher iSticher = Stitcher::createDefault(try_use_gpu);
// Set Feature finder to be ORB
iSticher.setFeaturesFinder(new detail::OrbFeaturesFinder());
try{
Stitcher::Status status = iSticher.stitch(Imgs, pano);
if (status != Stitcher::OK)
{
LOG("Error stitching - Code: %d", int(status));
return -1;
}
}
catch(exception e)
{
LOG("Cannot Stitch Image,%s",e.what());
}
код работает хорошо, и я был в состоянии сшить изображения достаточно Что ж. Единственная проблема заключается в том, что когда я хочу развернуть мой код, я понял, что мне нужно использовать несвободную dll. В противном случае .exe
не будет работать. Мои вопросы: для использования класса Stitcher
из opencv это означает, что вы должны заплатить, , даже если вы не используете SURF
или SIFT
алгоритмов? Есть ли способ сделать это без использования «несвободных DLL»? Примечание: Я использую opencv 2.4.2
. Редактирование: Я также тестировал его с помощью OpenCV 2.4.11
В какой несвободной библиотеке вы используете? –
@ KyryloPolezhaiev, насколько я знаю, есть только один non-free.dll. Но, если вы спрашиваете о не бесплатных функциях, я не использую какую-либо несвободную функцию, это только код здесь в вопросе ... – Samer
Кажется, вам не нужно разворачивать 'opencv_nonfree.dll',' opencv_stitching. dll' вместо этого. Вы использовали SIFT или SURF в другом месте? Или вы явно ссылались на 'opencv_nonfree.lib' в своем проекте? – herohuyongtao