openCV常用函数

来源:互联网 发布:软件著作权证书 申请 编辑:程序博客网 时间:2024/05/22 06:44

openCV中文网站:http://wiki.opencv.org.cn/index.php/OpenCV_%E7%BC%96%E7%A8%8B%E7%AE%80%E4%BB%8B%EF%BC%88%E7%9F%A9%E9%98%B5/%E5%9B%BE%E5%83%8F/%E8%A7%86%E9%A2%91%E7%9A%84%E5%9F%BA%E6%9C%AC%E8%AF%BB%E5%86%99%E6%93%8D%E4%BD%9C%EF%BC%89


IpIImage:存储图像数据

   cvLoadImage :
cvLoadImage  ( filename, -1 ); 默认读取图像的原通道数
cvLoadImage( filename, 0 ); 强制转化读取图像为灰度图
cvLoadImage( filename, 1 ); 读取彩色图

    width:表示图像的每行像素数;

    widthStep: 表示存储一行像素需要的字节数。必须是4的倍数,实现字节对齐,提高运算速度。利用widthStep遍历图像中元素。

                例子解释: ((uchar*)(Img1->imageData + Img1->widthStep*pt.y+pt.x))  :得到像素点(x,y)的地址

             (uchar*):强制类型转换,可能有负值 ; pt.y : 像素点所在行坐标; pt.x:像素点所在列坐标

                Img1->imageData :指向存储图像像素值数组的指针,内容是这个数组的首地址;

                Img1->imageData + Img1->widthStep*pt.y:该像素点所在行的首地址;


    nchannels: 

通道数为1: 灰度图,一个像素值只需要一个数值描述。

通道数为2:此类图像不常见,通常在程序处理中会用到,如傅里叶变换,可能会用到,一个通道为实数,一个通道为虚数,主要是编程方便

通道数为3:RGB图像,一个像素点需要RGB三种颜色描述。

通道数为4:通常为RGBA,在某些处理中可能会用到。

    char *imageData;       /* 指向排列的图像数据 */


    cvGetReal2D(image, y, x  ) :获取(x,y)坐标像素值;


    cvSetReal2D(image,y,x, acc);  将(x,y)坐标像素值设为acc;


    IplImage* cvCreateImage:创建图像

               // 分配一个单通道字节图像    IplImage* img1=cvCreateImage(cvSize(640,480),IPL_DEPTH_8U,1);
               // 分配一个三通道浮点图像    IplImage* img2=cvCreateImage(cvSize(640,480),IPL_DEPTH_32F,3);

                8U:无符号整型,无符号:不存在负数的数值; 整型:即C++中int类型; 在标准C语言中,占2字节,不过现在的编译环境下(如 32位环境下的 VC++)占用4字节 。

                32F:浮点型,分单精度float(4字节,小数有8位)和双精度double(8字节)。

               







0 0
原创粉丝点击