openCV源码Cmake编译后,VS build报错问题解决

    今天研究图像拼接,需要用到openCV中的stitching_detail。

    使用的是3.2.0版本,使用VS2017打开sample项目后,参照博客指南:

全景视频拼接(二)--OpenCV源码解析

    完成了build工作,然后在cmd命令行中,尝试读取图片运行,遇到了缺少SURF算子的问题。

OpenCV Error: The function/feature is not implemented (OpenCV was built without SURF support) 

    该问题主要由于3.2.0中没有SURF和SIFT算法,之前一些解决方案include nonfree的解决办法也不能用(目录下已经取消了这个包)。因此,需要重新对openCV进行编译。这里参照的是以下博客:

OpenCV学习笔记(八)—— OpenCV 3.1.0 + opencv_contrib编译(Windows)

    在Cmake对openCV进行编译的时候,遇上了报错。报错的问题是下载文件的校验码不匹配。通过手动在网上下载,复制到对应目录中就可以解决了。这里提供CSDN的一个下载地址,感谢上传者分享。

http://download.csdn.net/detail/u014045708/9831521

该压缩包中包含了基本所有需要下载的文件,且校验码都匹配。


    Cmake完成编译后,使用VS 2017打开OpenCV工程。(我在Cmake编译时选择的是2017)。

    进行重建的时候出现报错。

    报错内容包括以下:

    1.cmd.exe 已退出,代码为1

    2./lib/Debug/xxx.lib 无法访问

    3.Unicode编码格式错误,该文件包含不能在当前代码页(936)中表示的字符。

    

   参照一些解决办法,认为是 链接器-依赖 的问题。

    经过我查找和比对,发现链接器中的依赖没有问题(由Cmake编译后自动生成的依赖关系),而是实际上目录中没有对应的lib文件。编译器输出的lib文件中,主要以cuda居多,版本号都是320。

   后来,我想起我CUDA安装对应的是VS2015版本(VS2017未支持CUDA),因此,我重新使用了Cmake,选择VS2015 win64位进行编译生成。之后,使用VS2015打开工程,重建,顺利通过(等了很久……)。

    注意!!使用VS2015(你CUDA安装的那个版本)打开工程,build!

    build的时间大概在2个小时左右。期间控制台不断输出Unicode编码错误,是正常情况!(也有可能是乱码)

    编译后,打开原有的sample,注意更改工程的依赖、库、链接器,删除掉原有的依赖目录,添加编译的install下的目录。否则,build之后,生成的工程依然会报一样的错误(缺少SURF算子啥啥的)



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值