c++ - opencv拼接免费dll

标签 c++ opencv dll opencv-stitching

我的项目中有一个函数可以进行拼接,该函数运行良好,非常简单:

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 类是否意味着您必须付费,即使您没有使用 SURFSIFT 算法?有没有不使用“非自由 dll”的方法? 注意:我使用的是 opencv 2.4.2。编辑:我还使用 OpenCV 2.4.11

对其进行了测试

最佳答案

所以,经过大量挖掘。我想我已经找到了解决这个问题的方法: opencv_modules.hpp 中有一个标志,名为:HAVE_OPENCV_NONFREE 如果您取消定义或注释此标志的定义并从源代码构建opencv,那么这应该可以解决此问题,即opencv_stitching.dll 不会依赖关于 opencv_non-free.dll

关于c++ - opencv拼接免费dll,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34820810/

相关文章:

c++ - 寻求简单内存数据库*服务器*的建议(不需要持久性)

c++ - 人脸地标和使用光流稳定

java.lang.UnsatisfiedLinkError - native 方法问题

c++ - 用于 GPU 上的瓦片度量和调度的 Halide

c++ - 是++(a = b);比 a = b + 1 快;?

image-processing - 在 opencv 中集成 cvblobslib

c++ - DLL 导致 "Microsoft Excel has stopped working"但它在 Win32 控制台应用程序中工作正常

c++ - 防止dll被修改

c++ - 如何将场景添加到 mainwindow.cpp 中的 View ?

c++ - cv::TermCriteria 如何在 opencv 中工作?