python 3.4 vc++编译配置_Win10+vs2015+opencv3.4.1+附加模块opencv_contrib+cmake3.11.0编译和配置...

最近在做基于opencv的课设项目,参考了很多篇教程,retry了很多次。我的编译和配置过程大多数参考这篇文章。

一、准备工具

1. 系统:Win10 64位

opencv_contrib的版本一定要和opencv相同!!!

选择Binary distributions是它已经编译好了的cmake,根据自己的计算机和VS位数选择对应版本,我的是win10 64位,VS2015 64位

5. VS2015(我的是64位的community版本)

二、Cmake编译

1. 在opencv文件夹下新建一个mybuild文件夹(命名任意),存放我们的编译结果

2. 安装cmake,打开bin目录下的cmake-gui.exe

在where is the source code输入opencv地址/sources地址

在where to build the libraries输入保存编译结果的地址

点击Configure选择对应自己电脑上的VS版本的编译器,对于VS2015来说,32位的选择Visual Studio 14 2015,64位的选择Visual Studio 14 2015 Win64,点击finish后自动进行第一次编译

3. 第二次编译

第一次编译完成后会显示编译opencv所需要的参数。在Name为OPENCV_EXTRA_MODULES_PATH的Value中填入opencv_contrib-3.0.0的路径/modules,如下图所示。然后点击Configure进行第二次编译。

第二次编译完后一定要检查一下参数列表,如果参数列表还有红色标记的条目,就再尝试几次configure,直到所有条目都是白色为止。

4. 点击Generate,直到出现Generate Done

这时候在我们的mybuild文件夹下可以看到编译出的文件。

5. 检查一下附加模版是否成功编译并加入到opencv中

进入之前我们新建的mybuild文件夹下,进入modules,查看是否有下图所示的文件,这些是属于附加模块opencv_contrib的。如果没有,检查一下cmake参数列表中Name为OPENCV_EXTRA_MODULES_PATH的Value是否为opencv_contrib-3.0.0的路径/modules,不是的话重新设置、重新Configure以及重新Generate。

三、生成库文件

1. 在mybuild文件夹中,找到OpenCV.sln并打开

2. 在解决方案资源管理器中找到CMake Targets,右键点击“生成”

生成成功后,如果在mybuild文件夹中还没有出现一个名为install的文件夹,回到VS界面,右击INSTALL->仅用于项目->仅生成INSTALL,再次生成成功后就会出现install文件夹。

问题:无法打开文件‘python27_d.lib’ && 无法打开文件‘python36_d.lib’

生成INSTALL时,我碰到过下面的问题(当时忘记截图了),问题是:无法打开文件‘python27_d.lib’和无法打开文件‘python36_d.lib’

原因是我之前在电脑上安装了Anaconda2和Anaconda3,openCV用Cmake编译时都检测到了。解决方法是分别打开python2和python3对应的pyconfig.h文件,做两处修改。

如python2对应的pyconfig.h:

如果python3对应的也有问题的话也将其对应的pyconfig.h做以上修改。

四、配置

1. 系统环境变量

在计算机-环境变量-path中增加:where to build the binaries中设置的路径\install\x64\vc14\bin

注意:如果是32位的VS的话,路径应该是where to build the binaries中设置的路径\install\x86\vc14\bin

2. 配置新的工程

打开VS2015,新建一个工程

找到属性管理器->Debug|x64->右击Microsoft.Cpp.x64.user->属性

1. VC++目录-包含目录

1

2

3\install\include

\install\include\opencv

\install\include\

2. VC++目录-库目录

1\install\x64\vc14\lib

3. 链接器-输入-附加依赖项

这里添加的.lib文件都需要出现在\install\x64\vc14\lib 中。如果lib文件被添加到附加依赖项里,但是上述文件夹中没有该lib文件,会出现找不到XXX.lib的错误。

附上我的附加依赖项(共44个):

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44opencv_aruco341d.lib

opencv_bgsegm341d.lib

opencv_bioinspired341d.lib

opencv_calib3d341d.lib

opencv_ccalib341d.lib

opencv_core341d.lib

opencv_datasets341d.lib

opencv_dnn341d.lib

opencv_dnn_objdetect341d.lib

opencv_dpm341d.lib

opencv_face341d.lib

opencv_features2d341d.lib

opencv_flann341d.lib

opencv_fuzzy341d.lib

opencv_hfs341d.lib

opencv_highgui341d.lib

opencv_imgcodecs341d.lib

opencv_imgproc341d.lib

opencv_img_hash341d.lib

opencv_line_descriptor341d.lib

opencv_ml341d.lib

opencv_objdetect341d.lib

opencv_optflow341d.lib

opencv_phase_unwrapping341d.lib

opencv_photo341d.lib

opencv_plot341d.lib

opencv_reg341d.lib

opencv_rgbd341d.lib

opencv_saliency341d.lib

opencv_shape341d.lib

opencv_stereo341d.lib

opencv_stitching341d.lib

opencv_structured_light341d.lib

opencv_superres341d.lib

opencv_surface_matching341d.lib

opencv_text341d.lib

opencv_tracking341d.lib

opencv_video341d.lib

opencv_videoio341d.lib

opencv_videostab341d.lib

opencv_xfeatures2d341d.lib

opencv_ximgproc341d.lib

opencv_xobjdetect341d.lib

opencv_xphoto341d.lib

五、激动人心的时刻——测试

配了这么久,进了好多坑,终于到检验自己的时刻了!

在项目中新建一个cpp,记得添加到工程里。输入如下代码:

1

2

3

4

5

6

7

8

9

10

11

12#include

#include

#include

using namespace cv;

int main()

{

Mat img = imread("F:\\Object Tracking\\opencv_test\\timg.jpg");//读入一张图片

namedWindow("Test"); //创建一个名为Test窗口

imshow("Test", img); //窗口中显示图像

waitKey(5000); //等待5000ms后窗口自动关闭

}

Well Done!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值