偷得浮生半桶水(半日闲), 好记性不如抄下来(烂笔头). 信息爆炸的时代, 学习是一项持续的工作.
全部博文(1750)
分类: Android平台
2017-04-05 16:34:45
1 安装环境描述
操作系统:Windows10
IDE工具:Visual Studio 2015
OpenCV: v2.4.12
下载地址:http://opencv.org/downloads.html
2 配置开发环境
OpenCV的开发环境配置分为5个步骤。步骤1是解压文件,步骤2是配置系统环境变量,步骤3到步骤5是配置Visual Studio;
步骤1:解压OpenCV软件包
步骤2:配置环境变量
步骤3:配置include
步骤4:配置lib
步骤5:配置链接库
步骤1:解压OpenCV软件包
双击opencv-2.4.12.exe,出现一个对话框,提示需要将OpenCV的开发包解压到指定位置。在指定解压目录下,自动生成opencv目录。解压成功后,可以看到opencv目录下包括两个文件夹,分别是build和sources。
图1 解压Open软件包
图2 解压成功后的opencv目录
注意点:windows 8 /10 对C:\下的目录是有保护的,没有权限是不能解压到C盘中,会出现如下图所示错误:
图3 在C盘解压可能出现的错误
步骤2:配置环境变量
配置环境变量是将bin目录地址添加到PATH变量中,需要注意的是,build目录下提供了X86和X64两个目录分别对应32位和64位系统。在使用64位机器开发的时候,最好将两个都添加上。
添加bin路径示例:
D:\WorkSpace\opencv\build\x64\vc12\bin
D:\WorkSpace\opencv\build\x86\vc12\bin
图4 添加bin路径到PATH系统变量
如果bin配置不成功或者有误,会出现丢失dll的错误提示,我们可以将dll都复制到操作系统相关目录下。
32位系统:C:\Windows\System32
64位系统:C:\Windows\SysWOW64
示例地址: D:\WorkSpace\opencv\build\x86\vc12\bin
图5 bin目录下的dll
步骤3:配置include
步骤3到步骤5是配置Visual Studio环境,在开始布置前,首先要建立一个C++的空项目,打开”属性管理器”。
打开步骤:视图 ->属性管理器 -> Debug | Win32 -> Microsoft.Cpp.Win32.user->属性
图6 打开属性管理器
备注:在Microsoft.Cpp.Win32.user属性页的VC++目录选项中,包括了:包含目录(includ)、库目录(lib)。链接器选项中,可以配置链接库。
打开步骤:Microsoft.Cpp.Win32.user –> 通用属性–> VC++目录 –> 包含目录
图7 Microsoft.Cpp.Win32.user 属性页(VC++目录)
Include(包含目录)主要配置\opencv\build\下的几个include主目录。示例路径如下:
D:\WorkSpace\opencv\build\include
D:\WorkSpace\opencv\build\include\opencv
D:\WorkSpace\opencv\build\include\opencv2
图8 Include目录配置
步骤4:配置lib
lib配置同样在VC++目录下的库目录,示例目录路径如下
D:\WorkSpace\opencv\build\x86\vc12\lib
图9 配置lib目录
注意:需要说明的是,这里只配置了x86的lib目录地址,其原因我引用了《OpenCV3编程入门》中的讨论可以参考:不管是32位还是64位操作系统,只需要考虑用Win32编译器还是x64编译器……一般情况下,都是用Win32的x86编译器。所以无论32位或者64位操作系统,配置文件最好都选择x86版的。
步骤5配置链接库
链接器的配置是在: 链接器 -> 输入 –> 附加依赖项
图10 添加链接库
lib的顺序是19个带d的debug版本lib , 19个不带d的release版本lib在后。如果下所示为OpenCV2.4.12版本的链接库。
opencv_calib3d2412d.lib
opencv_contrib2412d.lib
opencv_core2412d.lib
opencv_features2d2412d.lib
opencv_flann2412d.lib
opencv_gpu2412d.lib
opencv_highgui2412d.lib
opencv_imgproc2412d.lib
opencv_legacy2412d.lib
opencv_ml2412d.lib
opencv_nonfree2412d.lib
opencv_objdetect2412d.lib
opencv_ocl2412d.lib
opencv_photo2412d.lib
opencv_stitching2412d.lib
opencv_superres2412d.lib
opencv_ts2412d.lib
opencv_video2412d.lib
opencv_videostab2412d.lib
opencv_calib3d2412.lib
opencv_contrib2412.lib
opencv_core2412.lib
opencv_features2d2412.lib
opencv_flann2412.lib
opencv_gpu2412.lib
opencv_highgui2412.lib
opencv_imgproc2412.lib
opencv_legacy2412.lib
opencv_ml2412.lib
opencv_nonfree2412.lib
opencv_objdetect2412.lib
opencv_ocl2412.lib
opencv_photo2412.lib
opencv_stitching2412.lib
opencv_superres2412.lib
opencv_ts2412.lib
opencv_video2412.lib
opencv_videostab2412.lib
kernel32.lib
user32.lib
gdi32.lib
winspool.lib
comdlg32.lib
advapi32.lib
shell32.lib
ole32.lib
oleaut32.lib
uuid.lib
odbc32.lib
odbccp32.lib
3测试示例程序
新建一个cpp文件,输入如下代码,程序的功能为读取一个jpg文件,并显示;
#include <opencv2/opencv.hpp> using namespace cv; int main() { Mat img = imread("p_large_4IoP_797a0001ce6f2d0b.jpg"); imshow("【原图】妹子",img); waitKey(0); }
图11 openCV 读取图片并显示