IplImage的數據結構以及遍歷方法


一般我們需要對圖像直接進行操作的時候,需要知道圖像存儲的數據結構,這要也就知道了它的遍歷方式

在opencv2.4.4版本下,IplImage的數據結構如下(貌似在別的版本下差別也不會太大)

其中比較重要的是width,height,imageData,widthStep。(其他的剛開始學也知道的不多- -)

width,height 就是表示圖像的寬度,高度,imageData是一個指向某內存空間的指針,該內存空間里面存放了圖像實際像素點的顏色信息(這里是RGB信息)

widthstep圖像一行像素點所占的字節數,這里是三通道,所以這時widthstep = width * 3

 

知道的上面的基本變量以后就可以遍歷了

out 為IplImage*類型,遍歷方法如下

    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; //這樣就可以添加自己的操作,這里我使三通道顏色一樣,就彩色圖轉黑白圖了
        }
    }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM