前言
OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉和机器学习软件库,可以运行在Linux、Windows、Android和Mac OS操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。
1.OpenCV的数据结构和函数
2.Mat类
Mat类不需要我们手动为其开辟空间,也不必在不需要时将空间释放。
- 用法
Mat A,C;
A = imread("1.jpg");
Mat B(A);//拷贝构造函数
C = A;//赋值运算
Mat D(A,Rect(10,10,100,100));//使用矩形界定
Mat E = A(Range:all(),Range(1,3);//用行和列界定
//使用函数clone()或copyTo()复制一幅图像的矩阵
Mat F = A.clone();
Mat G;
A.copyTo(G);
2.常用数据结构和函数
- Point类
表示二维坐标系下的点,即由图像x、y坐标制定的2D点。
Point point;
point.x = 10;
point.y = 9;
//或者
Point point = Point(10,9);
//Point_<int>、Point2i、Point互相等价,Point_<float>、Point2f互相等价。
- Scalar类
Scalar(R,G,B);
- Size类
Size(5,5);//构造出的Size宽度高度都为5。
- Rect类
//两个矩形的交集和并集
Rect rect = rect1 & rect2;
Rect rect = rect1 | rect2;
//平移和缩放操作
Reat reatShift = rect + point;
Reat reatScale = rect + size;
- cvColor()函数
cvColor(srcImage,dstImage,COLOR_GRAY2BGR);
参考书籍OpenCV3编程入门