opencv几个函数

来源:互联网 发布:电脑制作音乐软件 编辑:程序博客网 时间:2024/05/23 13:28

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顾名思义是元素在序列中的索引,即第一个元素
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4、     cvDrawContours:在图像上绘制外部和内部轮廓
          函数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
           按给定值移动所有点的坐标。
原创粉丝点击