OpenCV的配置过程和可能遇到的问题

OpenCV环境配置步骤:
首先声明:我是在WindowsXP下,使用VC++6.0 + sp6编译器,其他的版本我没有试过。

1、安装directX 9.0b sdk和OpenCV_1.0,这是我的搭配,实践过肯定可以说没问题,以后OpenCV肯定会再更新,届时有什么注意的再说。安装最好选择默认的安装目录(另选目录的话环境变量和别人的不一样,工程拷贝给别人的话可能需要调整),directX sdk要带Sample一起安装,因为其中的一些文件在配置OpenCV的时候要用到。
2、directX sdk安装完毕后进入C:/DXSDK/Samples/C++/DirectShow/BaseClasses目录,把这个工程在Debug和Release下编译后,将生成的STRMBASE.lib和strmbasd.lib复制到C:/DXSDK/Lib下面。
3、安装OpenCV后系统变量一般会自动设置,不过还是检查一下,没有的话就要在操作系统环境变量path下添加C:/Program files/OpenCV/bin; 然后到C:/Program Files/OpenCV/_make目录下,打开工程,在工具->选项->目录里的include files将C:/DXSDK/Samples/C++/DirectShow/BaseClasses加进去,然后在Debug和Release下全部编译(期间肯定会遇到下面两个问题,可以参照下文)。
4、具体开发一个OpenCV的例子程序时,要将VC的环境进行一些配置:(1)在setting里c/c++ ->preprocessor->additional include directory 增加C:/Program Files/openCV/cxcore/include,C:/Program Files/openCV/cv/include,C:/Program Files/openCV/otherlibs/highgui,C:/Program Files/openCV/cvaux/include (假设opencv默认安装)。(2)在link->input中的object/library modules增加cvd.lib cxcore.lib cv.lib cvaux.lib cvcam.lib  cxcored.lib  highgui.lib highguid.lib ml.lib (有的朋友说还有cvd_i7.lib cxcored_i7.lib等,我安装完后没有这些文件,也就没有写了,可能是版本的问题)。(3)在link->input中的additional libray path增加C:/Program Files/opencv/lib。
至此我们的一个OpenCV例子程序就可以编译过去了,我还没来得及用呢!大家一起进步吧!
我参考的文章链接:http://blog.csdn.net/woxincd/archive/2007/04/19/1570266.aspx

配置期间可能遇到的问题:
1、安装OpenCV过程中需要编译其_make目录下的opencv.dsw和opencv_directshow.dsw两个工作区下的所有工程,在编译opencv.dsw的cvaux files和cvtest files两个工程时都会遇到error C2039: 'foreground_regions' : is not a member of 'CvFGDStatModel'类似的编译错误,根据一位网友提供的信息,说这是OpenCV的一个古老的BUG,只要在cvaux/include文件夹下的cvaux.h文件,在文件中搜到foreground_regions所在的行,将
   CvMemStorage*   storage;      /*storage for 揻oreground_regions?/              /
    CvSeq*          foreground_regions /*foreground object contours*/
中的?改为*就可以了,本来应该是一个注释,属于项目中的笔误。改过来后再去编译,就OK啦!
我参考的原文:http://hi.baidu.com/greatsea/blog/item/66dbaa1f34e36bf1e1fe0b60.html

2、在编译opencv_directshow.dsw的CalivFilter files和ProxyTrans files两个工程时会出现
fatal error C1083: 无法打开包含文件:“streams.h”: No such file or directory类似的错误,我出现这个错误时是因为没有安装DirectX,后来根据一位网友的提醒,安装了一下(据这位网友所说,必须安装directX 9.0b sdk,装directX 9.0c sdk反而不行,而且要带所有的Sample一起装,因为所需要的文件是在
C:/DXSDK/Samples/C++/DirectShow/BaseClasses目录下的streams.h文件,
这位网友的回复链接是:http://www.mvonline.com.cn/bbs/simple/index.php?t1961.html)
安装以后,错误变成了链接错误:
Creating library ../../_temp/CalibFilter_Rls/CalibFilter.lib and object ../../_temp/CalibFilter_Rls/CalibFilter.exp
CalibFilter.obj : error LNK2001: unresolved external symbol "public: __thiscall CTransInPlaceFilter::CTransInPlaceFilter(char *,struct IUnknown *,struct _GUID const &,long *,bool)" (??0CTransInPlaceFilter@@QAE@PADPAUIUnknown@@ABU_GUID@@PAJ_N@Z)../../Bin/CalibFilter.ax : fatal error LNK1120: 1 unresolved externals
原来这里不仅要用到streams.h头文件,还要用BaseClasses下这个工程生成的lib文件
解决办法是:将BaseClasses工程分别在Debug和Release下编译后,将生成的STRMBASE.lib和strmbasd.lib复制到C:/DXSDK/Lib下面,由于C:/DXSDK/Lib在安装directX SDK后就会被VC6.0自动设为包含库文件目录,所以这两个链接文件就可以找到了。
如果还有错误,就检查一下CalivFilter files和ProxyTrans files两个工程的工程->连接->Link属性页,Debug下应该有strmbasd.lib,Release下应该有STRMBASE.lib,如果正常的话应该就没有问题了。
我参考的帖子链接是:http://topic.csdn.net/t/20041223/22/3671793.html
还是CSDN牛人多,外国论坛上都解决了半天无果而终的问题,在CSDN上都有结果...:-)

最后在给两个重要网站的链接:

http://www.opencv.org.cn/index.php OpenCV中文网,学习资料数不胜数,还有旗下论坛

http://opencvlibrary.sourceforge.net/ OpenCV英文站,下载最新的开源包,了解最新技术信息

                                            --------------
                                            §  李文凯 2008年04月26日 §
                                            §   作于WHHIT之IMLAB     §
                                            --------------

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值