• 编译opencv和opencv_contrib


    起因是需要做图像匹配,但是由于是手机截屏,模板图可能与截图之后的分辨率不一样,所以不能使用opencv的模板匹配,在使用feature(特征)匹配的时候,用到了"opencv2/xfeatures2d.hpp",而这个模块是opencv扩展里面的,如果想获得需要自己编译,官方提供的安装程序只有标准版。

    从github下载opencv和opencv_contrib

    用cmake打开opencv的目录,点击configure,选择你需要编译的版本

    比如我的是visual studio 2017 64位

    第一次configure完成后,有几个配置选项

    • 可以把python和java相关的选项去掉,因为我们要的是c++的

    • 把BUILD_opencv_world打开,这样我们引入lib只需要一个就好了,不然需要添加很多个

    • 设置OPENCV_EXTRA_MODULES_PATH,目录是opencv_contrib/modules

    • 把OPENCV_ENABLE_NONFREE打开,因为我们需要扩展库

    再次点击configure,等待完成,点击generate

    打开我们的工程,开始编译

    编译过程中可能遇到的问题是提示vgg_generated_120.i、boostdesc_binboost_256.i等之类的文件不存在,原因是编译脚本中有一个现在这些文件,但是由于一些原因没有下载下来,可以打开工程目录下的download_with_wget.sh或是download_with_curl.sh,查看每一个连接,手动在浏览器打开,然后保存到opencv_contribmodulesxfeatures2dsrc,再次编译就可以了。

    如果你是从opencv/.cache.xfeatures2d目录下拷贝的对应的文件,有可能会报PRrows, PRcols, PRidx, PR, PJrows, PJcols, PJidx这些参数找不到的错误,undefined,那是因为你拷贝的文件是空的,没有下载成功。所以还是手动下载,然后拷贝到对应目录

    运行ALLBUILD,这个过程比较慢,等编译结束,再运行INSTALL,如果上面配置工程的时候没有额外配置目录,默认安装在编译目录的install下。把install目录下的文件拷贝到对应位置,新建的工程引用这个目录下的类库和头文件就可以了

  • 相关阅读:
    Mach-O iOS
    IPA的构建原理 iOS
    输入网址进入网页按回车刷新网页都发生了什么?URL 输入到显示的过程?
    LeetCode另一棵树的子树Swift
    如何解决静态库的冲突问题 iOS
    LeetCode下一个更大元素 I Swift -- 单调递增栈
    UITapGestureRecognizer 和 UICollectionView/UITableView等点击事件冲突问题
    UITableView/UICollectionView调用reloadData刷新时界面闪烁
    C#绘制折线图或曲线图,直接返回Image对象或图片文件
    C#反射+继承+接口的应用
  • 原文地址:https://www.cnblogs.com/studywithallofyou/p/13432325.html
Copyright © 2020-2023  润新知