OpenCV静态库编译行x86版本+基于OpenCV开发可以在其他电脑上独立运行的MFC程序

 

1 OpenCV静态库编译

系统环境:

Win10  64位

opencv-4.1.1-vc14_vc15.exe

VS2015 Community

1、下载安装CMake

去CMake的官网下载相应版本的安装包

官网链接:https://cmake.org/download/

下载之后按照默认选项安装,可以更改安装路径(保险起见,安装路径最好不要有中文)。

2、下载安装OpenCV

(1)、在opencv的官网下载相应版本的安装包,下载地址:https://opencv.org/releases.html

这里选择4.1.1版本。也可以选择自己需要的版本,本次教程只针对4.1.1版本。

(2)、双击下载的opencv-4.1.1-vc14_vc15.exe文件,提取到需要安装的文件目录即可,如我的目录为C:\OpenCV411

 

文件提取完成之后,可以看到OpenCV411文件夹下多了一个opencv文件夹。

其中,sources文件夹就是OpenCV的源文件。

3、使用CMake编译OpenCV静态库

(1)、打开CMake软件,点击“Browse Source…”, 选择OpenCV的源码文件路径(即前面提取的opencv文件夹下的source文件夹)*\opencv\sources,*表示opencv的安装目录,如,我的源码文件路径为:C:\OpenCV411\opencv\sources

(2)、点击“Browse Build...”选择编译后存放的文件夹,在*/opencv目录下新建一个文件夹用于存放输出文件。这里在opencv文件夹下新建一个名为“staticbuild”的文件夹,并进行选择,这里是C:\OpenCV411\opencv\staticbuild

选择后的界面如下图所示:

(3)、点击Configure,配置你的VS版本,VS2015选择Visual Studio14 2015

点击“Finish”,启动编译,会开始自动进行编译,如下所示:

等待右下角进度条完毕。编译完成,可以看到如下界面。

(4)、取消勾选BUILD_SHARED_LIBS、BUILD_TESTS。一定要取消勾选BUILD_SHARED_LIBS,只有这样生成的才是OpenCV静态库。

勾选WITH_TBB

(5)、再次点击Configure,等待配置完成。

完成之后界面如下所示:

(6)、点击“Generate”进行生成

生成完成,如下所示。

(7)、点击“Open Project”,此时会自动启动VS2015

4、用VS编译

(1)、选择Release和win32,点击“生成”—〉“生成解决方案”。【同样地,若需Debug和x64,请按需选择】

VS编译生成的时间较长,需要耐心等待解决方案生成完成。

(2)、编译成功后,在解决方案资源管理器—>CMake Targets----->INSTALL---->右键INSTALL------>仅用于项目-------->仅生成INSTALL

此时可以在*\install\x86\vc14路径看到staticlib文件夹,*表示在CMake中设置的输出文件夹,我的是

C:\OpenCV411\opencv\staticbuild\install\x86\vc14

至此,OpenCV对应的Release和win32下的静态库编译完成,可以关闭CMake和VS2015.

2 基于OpenCV开发可以在其他电脑上独立运行的MFC程序

打开VS2015,新建一个基于对话框的MFC解决方案。

这里选择基于对话框,也可以按需选择。

1、修改项目属性。

(1)选择与生成的静态库一致的平台配置。这里选择Release和x86,对应前面的Release和win32。

(2)“常规“->”MFC的使用“修改为”在静态库中使用MFC“

(3)"C/C++"->"代码生成"->"运行库",改为“多线程/MT”,对应Release模式。

(4)添加包含目录。"VC++目录"->"包含目录",选择前面生成的staticbuild文件夹下的\install\include和\install\include\opencv2,具体如下图所示。

(4)添加库目录。"VC++目录"->"库目录",选择前面生成的staticbuild文件夹下的\\install\x86\vc14\staticlib,具体如下图所示。

同时,将该文件夹下的所有lib文件名保存到一个txt文档。

我的如下所示

zlib.lib
quirc.lib
opencv_videoio411.lib
opencv_video411.lib
opencv_stitching411.lib
opencv_photo411.lib
opencv_objdetect411.lib
opencv_ml411.lib
opencv_imgproc411.lib
opencv_imgcodecs411.lib
opencv_highgui411.lib
opencv_gapi411.lib
opencv_flann411.lib
opencv_features2d411.lib
opencv_dnn411.lib
opencv_core411.lib
opencv_calib3d411.lib
libwebp.lib
libtiff.lib
libprotobuf.lib
libpng.lib
libjpeg-turbo.lib
libjasper.lib
ittnotify.lib
ippiw.lib
ippicvmt.lib
IlmImf.lib
ade.lib

并将其全部添加到"链接器"->"输入"->"附加依赖项"

至此,项目配置完毕。运行项目,看是否存在错误。

2、测试OpenCV

(1)在stdafx.h中添加以下头文件包含

#include <iostream>
#include <opencv2/core/core.hpp>  
#include <opencv2/highgui/highgui.hpp>
using namespace cv;

运行程序,应该没有错误出现。

(2)将测试图片”lena.jpg“拷贝到工程目录下和可执行程序的同一目录下。如下图所示:

(3)在.dlg文件的OnInitDialog()函数中添加测试代码。

    char *testPicName = "lena.jpg";
    Mat image = imread(testPicName);
    imshow("lena", image);

执行程序,应当看到lena图片显示出来了。

将Release文件夹下的exe文件和lena图片拷贝到其他电脑上均可运行。

完毕!

 

  • 6
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值