Opencv-获取图像或者矩阵的宏

来源:互联网 发布:游戏数据分析 编辑:程序博客网 时间:2024/06/06 02:51

在OpenCV中一般取元素都用定义好的宏:
取Mat结构的元素的宏为CV_MAT_ELEM,它取2D的矩阵最方便。


取IplImage元素的宏为CV_IMAGE_ELEM,如取一个图像(x,y)点的灰度值:
uchar *ptr=CV_IAMGE_ELEM(image,uchar,i,j*3);
ptr[0],ptr[1],ptr[2]就是对应的B/G/R三个分量了。

IplImage *image =cvLoadImage("image.jpg",CV_LOAD_IMAGE_COLOR);for(i=0;i<image->height;i++)   for(j=0;j<image->width;j++)   {uchar * ptr=&CV_IMAGE_ELEM(image,uchar,i,j*3); ptr[0]=0;   ptr[1]=0;   ptr[2]=0; }


获取并修改图像像素值,下面方式也是常用方式:

IplImage *image;      image=cvCreateImage(Size1,IPL_DEPTH_8U,3);uchar* RGBimage= (uchar *) image->imageData;for(int j=0;j<image->height;j++)for (int i=0;i<image->width;i++){for (int k=0;k<3;k++)   {  RGBimage[j*image->widthStep+i*3]=0;RGBimage[j*image->widthStep+i*3+1]=0;RGBimage[j*image->widthStep+i*3+2]=0;}}




原创粉丝点击