1、 对于图像中的某一像素点 P(x, y), 在我们正常的坐标系中,x代表其横坐标,y代表其纵坐标,而在opencv的函数 cvGet2D()与cvSet2D() 中,却行不通。cvGet2D() 的函数原型是 : CvScalar cvGet2D (const CvArr * arr, int idx0, int idx1); 函数返回的是一个CvScalar 容器,其参数中也有两个方向的坐标,但跟我们平常习惯的坐标不一样的是,idx0代表是的行,即高度,对应于我们平常坐标系的y, idx1代表的是列,即宽度,对应于我们平常坐标系的x,cvSet2D() 也类似。所以在使用cvSet2D() 与 cvGet2D() 时,千万要注意坐标的顺序。
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2、 cvCreateImage是openCV中的一个函数。OpenCV是Intel公司支持的开放计算机视觉库。cvCreateImage:创建头并分配数据
IplImage* cvCreateImage( CvSize size, int depth, int channels );
参数说明:size 图像宽、高.
depth 图像元素的位深度,可以是下面的其中之一:
IPL_DEPTH_8U - 无符号8位整型
IPL_DEPTH_8S - 有符号8位整型
IPL_DEPTH_16U - 无符号16位整型
IPL_DEPTH_16S - 有符号16位整型
IPL_DEPTH_32S - 有符号32位整型
IPL_DEPTH_32F - 单精度浮点数
IPL_DEPTH_64F - 双精度浮点数
channels:
每个元素(像素)通道数.可以是 1, 2, 3 或 4.通道是交叉存取的,例如通常的彩色图像数据排列是:b0 g0 r0 b1 g1 r1 ... 虽然通常 IPL 图象格式可以存贮非交叉存取的图像,并且一些OpenCV 也能处理他, 但是这个函数只能创建交叉存取图像.
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3、cvGetSeqElement是opencv里面的一个函数,功能主要是函数cvGetSeqElem返回索引制定的袁术指针。
格式:char *cvGetSeqElem(seq,index)
#deifine CV_GET_SEQ_ELEM(TYPE,seq,index)\(TYPE*)cvGetSeqElem((CvSeq*)(seq),(index))
用法:(1)首先返回的是char类型的指针,当然也可以利用强制类型转换,转换为序列中实际存储的数据类型
for(int i=0;i<seq->total;i++)
{
CvPoint *p = (CvPoint*) cvGetSeqElem(seq,i);
}
(2)seq是需要检测的序列,而i顾名思义是元素在序列中的索引,即第一个元素
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
函数cvDrawContours用于在
图像上绘制外部和内部轮廓。当thickness >= 0 时,绘制轮廓线;否则填充由轮廓包围的部分。
void cvDrawContours( CvArr *img, CvSeq* contour,
CvScalar external_color, CvScalar hole_color,
int max_level, int thickness=1,
int line_type=8, CvPoint offset=cvPoint(0,0) );
img
要在其上绘制轮廓的图像。和在其他绘图函数里一样,轮廓是ROI的修剪结果。
contour
指向第一个轮廓的
指针。
external_color
外轮廓的颜色。
hole_color
内轮廓的颜色。
max_level
画轮廓的最大层数。如果是0,只绘制contour;如果是1,将绘制contour后和contour同层的所有轮廓;如果是2,绘制contour后所有同层和低 一层的轮廓,以此类推;如果值是负值,则函数并不绘制contour后的轮廓,但是将画出其子轮廓,一直到abs(max_level) - 1层。
thickness
绘制轮廓线的宽度。如果为负值(例如,等于CV_FILLED),则contour内部将被绘制。
line_type
轮廓线段的类型,具体查看cvLine的描述。
offset
按给定值移动所有点的坐标。