【OpenCV入门指南】第十二篇 在Windows平台下分享OpenCV程序

OpenCV入门指南》这个系列已经讲解了十一篇,相信大家对OpenCV已经有一个初步的了解了。有网友反映怎么自己写的OpenCV程序拷贝到其它人的电脑上就无法使用?对于电脑高手来说,这个问题简直不值一提。但对新手来说,有篇详细的文章来教他们解决这个问题肯定也能大大节省他们的时间。因此本篇就来解决这个问题——让没安装OpenCV的电脑也能运行我们所写的OpenCV程序。

 

  以上一篇《【OpenCV入门指南】第十一篇鼠标绘图》的程序为例,在没安装OpenCV的电脑(Win7系统)上运行Release生成的opencv_test1.exe会报错。错误内容如下——无法启动此程序,因为计算机中丢失opencv_core231d.dll。尝试重新安装该程序以解决此问题

由于报错的原因是因为一些DLL没有被加载,因此随程序附加上DLL看看可不可以解决这个问题。

使用VC6自带的Depends.exe查看这个程序依赖哪些DLL

可以看出程序依赖于opencv_core231d.dllopencv_highgui231d.dll,到OpenCV的安装目录中找出这二个DLL将其与我们的opencv_test1.exe放在同一目录,再运行。结果还是报错。错误内容如下——应用程序无法正常启动(0xc0150002)。请单击“确定”关闭程序

 

到网上查了“应用程序无法正常启动 0xc0150002”的解决方法,有人说要下一个VC支持程序

http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&FamilyID=200b2fd9-ae1a-4a14-984d-389c36f85647

不过安装后还是报错!!!!

 

  再搜索下解决方法,原来OpenCVDLL是分DebugRelease两种的,像opencv_core231d.dll这个文件名最后有个d说明这是Debug下生成的,不加dopencv_core231.dll才是Release下生成的。

  而且很明显Release生成的程序应该去加载Release生成的DLL,因此这个opencv_test1.exe应该去加载opencv_core231.dllopencv_highgui231.dll。在项目配置中改下将《OpenCV入门指南】第一篇安装OpenCV》中使用的

opencv_calib3d231d.lib opencv_contrib231d.lib opencv_core231d.lib opencv_features2d231d.lib opencv_flann231d.lib opencv_gpu231d.lib opencv_highgui231d.lib opencv_imgproc231d.lib opencv_legacy231d.lib opencv_ml231d.lib opencv_objdetect231d.lib opencv_ts231d.lib opencv_video231d.lib

换成

opencv_calib3d231.lib opencv_contrib231.lib opencv_core231.lib opencv_features2d231.lib opencv_flann231.lib opencv_gpu231.lib opencv_highgui231.lib opencv_imgproc231.lib opencv_legacy231.lib opencv_ml231.lib  opencv_objdetect231.lib  opencv_ts231.lib opencv_video231.lib

 设置配置的方法见这里(可以参考《【OpenCV入门指南】第一篇 安装OpenCV》中的图示):

VS2008中点击“项目”,再点击“属性”,依次展开“配置属性”--> “链接器”--> “输入”在“附加依赖项中”添加即可(Release)。

 

然后再将opencv_core231.dllopencv_highgui231.dll放到opencv_test1.exe目录下。双击,已经可以成功运行了。

 

 

本文这种方法比较原始,规范一点的做法应该是作个安装包来发布程序的。安装包的制作比较复杂,肯定不是一篇两篇博客可以讲透彻的,大家可以搜索下“VS2008 安装与部署”。使用其它打包工具也是个不错的选择。

使用静态编译的方法也可以,不过这样生成的exe程序会比较庞大。可以参考:http://www.opencvchina.com/thread-1368-1-1.html

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值