编程经验:不同版本OpenCV之间并存可能引起的bug~
2015-03-05 18:57
375 查看
本文说一说我使用opencv遇到的一个bug,以及解决办法。
再如,得到了一份源代码, 想运行起来跑跑看,但是发现,这份源代码是基于高版本的opencv(下文说成opencv249),在本机上,经常使用的是低版本的opencv(下文说成opencv210),配置完毕,发现编译可以通过,但在运行的时候,会发现许多莫名其妙的错误。例如,提示你缺少cv210d,检查配置,明明添加的是opencv249。还以为是VS2010抽风了呢。
1. VS2010通用属性配置问题。VS2010和VS2008的配置有一些不同,尤其是VS2010提供了通用属性配置,其实就相当于VS2008工具选项里面的配置而已,通用属性要在属性目录中配置,适用于所有添加项目的"默认配置"。如果通用属性中添加了低版本的opencv相关信息,那么就可能导致项目配置失灵的情况。
通用属性配置如下:
注意,一定要双击Microsoft.Cpp.Win32.user,而不是 Debug
| Win32 文件夹,后者还是具体项目的配置属性,前者才是通用全局属性!!
2. 环境变量配置问题。可以在环境变量中的path选项设置多个opencv的bin,但是切记,要将dll的debug和release版本分开添加,如果两种dll文件都混在一起,会引起问题。配置好之后,要对VS2010进行重启,有童鞋说,要对电脑进行重启,这个没必要。
3. 项目中添加了其他库,这些库依赖了低版本的opencv库。这个问题比较奇葩, 有时候会想不到,要将当前项目依赖的其他库中与低版本opencv相关的一切信息去除掉才可以。
4. 不幸的是,在Microsoft.Cpp.Win32.user配置的路径,竟然适用于所有解决方案的所有工程,而不是当前解决方案的所有工程,这一点十分不方便,不知有哪位童鞋有更好的办法?
5. 配置好路径之后,会发现头文件还是无法进入,这个时候需要重新启动VS2010,记得保存哦~
1. 问题描述
相信使用过opencv的不少朋友,遇到过如下问题,在调用最常用的函数,例如读取图像的imshow函数,会发现读取文件失败。并且,编译成功,但在在调试的时候,发现单步进入低版本opencv的同名函数中,甚至是在运行的时候,出现中断提示,头都大了。再如,得到了一份源代码, 想运行起来跑跑看,但是发现,这份源代码是基于高版本的opencv(下文说成opencv249),在本机上,经常使用的是低版本的opencv(下文说成opencv210),配置完毕,发现编译可以通过,但在运行的时候,会发现许多莫名其妙的错误。例如,提示你缺少cv210d,检查配置,明明添加的是opencv249。还以为是VS2010抽风了呢。
2. 问题解决
根据我使用VS2010的经验,这类问题的主要原因如下:1. VS2010通用属性配置问题。VS2010和VS2008的配置有一些不同,尤其是VS2010提供了通用属性配置,其实就相当于VS2008工具选项里面的配置而已,通用属性要在属性目录中配置,适用于所有添加项目的"默认配置"。如果通用属性中添加了低版本的opencv相关信息,那么就可能导致项目配置失灵的情况。
通用属性配置如下:
注意,一定要双击Microsoft.Cpp.Win32.user,而不是 Debug
| Win32 文件夹,后者还是具体项目的配置属性,前者才是通用全局属性!!
2. 环境变量配置问题。可以在环境变量中的path选项设置多个opencv的bin,但是切记,要将dll的debug和release版本分开添加,如果两种dll文件都混在一起,会引起问题。配置好之后,要对VS2010进行重启,有童鞋说,要对电脑进行重启,这个没必要。
3. 项目中添加了其他库,这些库依赖了低版本的opencv库。这个问题比较奇葩, 有时候会想不到,要将当前项目依赖的其他库中与低版本opencv相关的一切信息去除掉才可以。
4. 不幸的是,在Microsoft.Cpp.Win32.user配置的路径,竟然适用于所有解决方案的所有工程,而不是当前解决方案的所有工程,这一点十分不方便,不知有哪位童鞋有更好的办法?
5. 配置好路径之后,会发现头文件还是无法进入,这个时候需要重新启动VS2010,记得保存哦~
3. 总结
同一个解决方案,添加多个项目,是我们经常要做的事情,而做计算机视觉基本上离不开opencv,遇到opencv的问题,一个是耗时间不值得,一个是问题重复性很强。完全可以一次解决,终身受益。我说的是我个人的经验,还请各位朋友们补充指正,谢谢!相关文章推荐
- 编程经验:一个由windows.h&&winbase.h引起的bug~
- 不同OpenCV版本和不同VS版本之间配置时的注意事项
- 编程经验:由于路径设置引起的VS2010不能正确输出文件的bug~
- opencv不同版本之间的互操作性
- vs在不同版本的opencv之间切换
- 编程经验:几个OPENCV中挺有意思的BUG~
- 不同OpenCV版本和不同VS版本之间进行配置的注意事项
- 不同OpenCV版本和不同VS版本之间进行配置的注意事项
- TF版本问题:由于不同的TensorFlow版本之间某些函数的用法引起的错误—Jason niu
- OpenCV 不同版本之间的切换
- 黄聪:DIV+CSS建站经验总结,不同版本IE下CSS布局bug问题(IE5、IE6、IE7、IE8、火狐Firefox兼容)
- Oracle817 版本 不同字符集之间的数据库导入
- IIS6同一 IIS 进程中不可能运行两个不同的 ASP.NET 版本
- MSMQ安全性及不同版本之间通讯的问题
- 比较同一数据库不同版本间数据表之间差异
- "同一 IIS 进程中不可能运行两个不同的 ASP.NET 版本"解决方案
- 编程高手有很多只是编程老手,因为他比你熟悉编码,比你了解整体运行架构,比你迅速找出程序中的Bug,高手只是高在经验积累得比你多比你纯熟而已,那种传说中的高手是少之又少的。
- oracle不同版本之间的切换
- [经验总结]利用MSXML在不同DOM树之间拷贝结点
- 比较同一数据库不同版本间数据表之间差异