一直想深入学习下数字图像处理,今天决定了,就是结合OpenCV来学习数字图像处理这门课程,这样会学得更加扎实一些。
OpenCV是什么:(Open Computer Vision)
1、Opencv是计算机视觉开源库,主要算法涉及图像处理和机器学习相关方法。
2、是Intel公司贡献出来的,俄罗斯工程师贡献了大部分C/C++代码。
3、在多数图像处理相关的应用程序中被采用,BSD许可,可以免费应用在商业和研究领域。
4、目前最新版本是OpenCV3.2.0,当前SDK支持Java、Python、IOS和Android版本。
5、官方主页是 opencv.org。
6、其他的一些库有,MATLAB,HALCON(收费)。
OpenCV的一些主要模块:
Image Process(图像处理)、2D Feature(2D图的特征)、Object Detection(物体检测)、Video Analysis(视频分析)、Machine Learning(机器学习)、Camera Calibration and 3D reconstruction(相机标定和3D重构)、 GPU加速(这个收费)等等。主要学习前面3个内容。
OpenCV下载安装:
- 官网:http://opencv.org/
- GitHub:https://github.com/Itseez/opencv
-
- 我们下载的是windows下的,看起来是个exe文件,其实是个压缩文件,运行它只是解压缩到我们指定的一个文件夹。
OpenCV配置使用:
先在系统环境变量Path中添加D:\opencv3.2.0\opencv\build\x64\vc14\bin
建一个空项目:(Win32 Console Application)
先配置系统环境变量Path
选择该项目以后,在主菜单View(视图)–Other Windows(其他窗口)–Property Manager(属性管理器),会在右上出现一个(Property Manager属性管理器)的页面,点项目名称左边的三角,会出现4个小项,分别是:
Debug | Win32
Debug | x64
Release | Win32
Release | x64
选择你想要的,比如我现在选了 Debug(x64),点他左边的三角展开,点第一个右键选属性。
然后选择 VC++ Directories(VC++目录),里面有个Include Directories(包含目录),把上面的三个头文件目录(头文件Include:三个路径)添加进去。
还是在VC++ Directories(VC++目录),里面还有个Library Directories(库目录),把库路径(库路径:lib path)添加进去。
然后选Linker(连接器)下面的Input(输入),右边的Additional Dependencies(附加依赖项),把opencv_world320d.lib加进去(假如是Release x64就要放没有d结尾的另一个lib文件)。
测试代码(代码来源于网上)
//#include "stdafx.h"
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;
int main(int argc, char *argv[]) {
const char* imagename = "lena.jpg";
//从文件中读入图像
Mat img = imread(imagename);
//如果读入图像失败
if (img.empty()) {
fprintf(stderr, "Can not load image %s\n", imagename);
return -1;
}
//显示图像
imshow("image", img);
//此函数等待按键,按键盘任意键就返回
waitKey();
return 0;
}
上面的代码,在Debug x64和Release x64下面都测试通过。说明OpenCV已经正确配置和安装完成了。
如果在编译中报错:无法启动此程序因计算机中丢失opencv_world320.lib
可以尝试将bin目录中的3个dll文件复制在(C:\Windows\System32)或(C:\Windows\System64)中。