opencv拼接免费dll
opencv stitching with free 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
不会 运行。我的问题是:为了从 opencv 使用 Stitcher
class 这是否意味着你必须付费, 即使你没有使用 SURF
或 SIFT
算法?有没有不使用 "nonfree dlls" 的方法?
注意:我正在使用 opencv 2.4.2
。编辑:我还使用 OpenCV 2.4.11
对其进行了测试
所以,经过大量挖掘。我想我已经找到了解决这个问题的方法:
opencv_modules.hpp
中有一个标志叫做:HAVE_OPENCV_NONFREE
如果您 undefine
或评论此标志的定义并从源代码构建 opencv
那么这应该可以解决此问题,即 opencv_stitching.dll
不会依赖于 opencv_non-free.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
不会 运行。我的问题是:为了从 opencv 使用 Stitcher
class 这是否意味着你必须付费, 即使你没有使用 SURF
或 SIFT
算法?有没有不使用 "nonfree dlls" 的方法?
注意:我正在使用 opencv 2.4.2
。编辑:我还使用 OpenCV 2.4.11
所以,经过大量挖掘。我想我已经找到了解决这个问题的方法:
opencv_modules.hpp
中有一个标志叫做:HAVE_OPENCV_NONFREE
如果您 undefine
或评论此标志的定义并从源代码构建 opencv
那么这应该可以解决此问题,即 opencv_stitching.dll
不会依赖于 opencv_non-free.dll