1. 数据类型
CV_8UC1:8 位无符号单通道矩阵
CV_32FC2:32 位浮点数双通道矩阵
(数据数有三种:U,F,S 有符号整数)
2. 图象类型
IPL_DEPTH_8U:8 位无符号整数图象
IPL_DEPTH_32F:32 位浮点数图象
3. 矩阵定义与释放矩阵
CvMat*M=cvCreateMat(4,4,CV_32FC1);//4 行 4 列的数据类型为
CV_32FC1 的矩阵;
cvReleaseMat(&M);
4. 复制矩阵
CvMat*M1=cvCreateMat(4,4,CV_32FC1);
CvMat*M2;
M2=cvCloneMat(M1);
5. 初始化矩阵与单位矩阵
double a[]={1,2,3,4,5,6,7,8,9,10,11,12};
CvMat Ma=cvMat(3,4,CV_64FC1,a);
或者:
CvMat Ma;
cvInitMatHeader(&Ma,3,4,CV_64FC1,a);
初始单位矩阵:
CvMat*M=cvCreateMat(4,4,CV_32FC1);
cvSetIdetity(M);//好像不稳定
6.
void cvMoveWindow( const char* name, int x, int y );// 移动窗口
使左上角落到 x,y
void cvDestroyAllWindows( void );
7. cvRectangle(CvArr*img, CvPoint pt1,CvPoint pt2, CvScalar color,
int thickness=1,int line_type=8,int shift=0);//img 图像,pt1 和 pt2
矩形对角线上的两顶点,color 线条颜色或亮度(对灰度图),
thickness 组成矩形的线条的粗细程度,取负值时(如 CV_FILLED)
函数绘制填充了色彩的矩形,line_type 线条的类型,shift 坐标点
的小数点位数。
例:cvRectangle (
img,
cvPoint(box.x,box.y),
cvPoint(box.x+box.width,box.y+box.height),
cvScalar(0xff,0x00,0x00) /* red */
);
cvLine 的函数也如此
8. 鼠标操作
void cvSetMouseCallback(
const char* window_name,
CvMouseCallback on_mouse,
void* param = NULL
);
9. 创建拖动条
int cvCreateTrackbar(
const char* trackbar_name,
const char* window_name,
int* value,
int count,
CvTrackbarCallback on_change
);
//These functions allow you to set or read the value of a trackbar from
anywhere in yourprogram.
int cvGetTrackbarPos(
const char* trackbar_name,
const char* window_name
);
void cvSetTrackbarPos(
const char* trackbar_name,
const char* window_name,
int pos
);