首页 > 其他 > 详细

IplImage的数据结构以及遍历方法

时间:2014-01-21 16:29:56      阅读:349      评论:0      收藏:0      [点我收藏+]

一般我们需要对图像直接进行操作的时候,需要知道图像存储的数据结构,这要也就知道了它的遍历方式

在opencv2.4.4版本下,IplImage的数据结构如下(貌似在别的版本下差别也不会太大)

bubuko.com,布布扣

其中比较重要的是width,height,imageData,widthStep。(其他的刚开始学也知道的不多- -)

width,height 就是表示图像的宽度,高度,imageData是一个指向某内存空间的指针,该内存空间里面存放了图像实际像素点的颜色信息(这里是RGB信息)

widthstep图像一行像素点所占的字节数,这里是三通道,所以这时widthstep = width * 3

 

知道的上面的基本变量以后就可以遍历了

out 为IplImage*类型,遍历方法如下

bubuko.com,布布扣
    int x,y;
    for(y = 0;y<out->height;y++){
        char *ptr= out->imageData + y * out->widthStep;
        for( x = 0;x<out->width;x++){
            int temp=ptr[3*x];
            ptr[3*x]=ptr[3*x+1]=ptr[3*x+2]=temp; //这样就可以添加自己的操作,这里我使三通道颜色一样,就彩色图转黑白图了
        }
    }
bubuko.com,布布扣

IplImage的数据结构以及遍历方法

原文:http://www.cnblogs.com/huhuuu/p/3527206.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!