OpenCV基础知识
命名规则
通用函数名cvActionTargetMod(…)
- Action表示核心函数,如:Set、Creat等
- target表示目标区域,如:轮廓、多边形
- Mod表示可选变种,如:变量类型
通用矩阵数据类型CV_(bit_depth)(S|U|F)C(number_of_channels)
- S表示带符号整数
- U表示无符号整数
- F表示浮点数
- number_of_channels表示通道数
通用图像数据类型IPL_DEPTH_(bit_depth)(S|U|F),如IPL_DEPTH_8U表示8位无符号整数图像
- 头文件:cv.h、cvaux.h、highgui.h、cxcore.h
基本数据结构
- 图像结构IplImage
- 矩阵向量结构CvArr ,如:IplImage 、CvMat 、CvSeq 等
- 其他数据结构
(1)点的表示
CvPoint p = cvPoint(int x,int y);
CvPoint2D32f p = ...;
CvPoitn3D32f p = ...;
p.x=5.0;
p.y=5.0;
(2)长方形维数的表示
表示长方形维数的数据结构及用法:
CvSize r = cvSize(int width, int height);
CvSizeD32f r = ...;
(3)有偏移量的长方形表示
CvRect r = cvRect(int x,int y,int width,int height);
矩阵的使用与操作
- 分配与释放矩阵
(1)分配矩阵
CvMat * M = cvCreateMat(int rows,int cols,int type);
其中,type为矩阵类型:CV_(bit_depth)(S|U|F)C(number_of_channels)。
(2)释放矩阵
cvReleaseMat(&M);
(3)复制矩阵
M2 = cvCloneMat(M1);
(4)初始化矩阵
CvMat Ma;
cvinitMatHeader(&Ma,3,4,CV_64FC1,a);
(5)初始化单位矩阵
CvMat* M = cvCreateMat(4,4,CV_32FC1);
cvSetIdentity(M);
- 访问矩阵元素
(1)直接访问
cvmSet(M,i,j,2.0);
t = cvmGet(M,i,j);
(2)已知对齐方式直接访问
CvMat* M = cvCreateMat(4,4,CV_32FC1);
int n = M->cols;
float* data = M->data.fl;
data[i*n+j