opencv獲取畫素的值

2022-07-23 03:42:13 字數 1810 閱讀 5809

opencv中獲取影象畫素的方法

方法一:

}注意記憶體中儲存順序是bgr

方法二:

for (int i = 0; i < img->height; ++i)

方法三:

對於單通道位元組型影象:

iplimage* img=cvcreateimage(cvsize(640,480),ipl_depth_8u,1); 

((uchar *)(img->imagedata + i*img->widthstep))[j]=111;

對於多通道位元組型影象:

iplimage* img=cvcreateimage(cvsize(640,480),ipl_depth_8u,3); 

((uchar *)(img->imagedata + i*img->widthstep))[j*img->nchannels + 0]=111; // b

((uchar *)(img->imagedata + i*img->widthstep))[j*img->nchannels + 1]=112; // g

((uchar *)(img->imagedata + i*img->widthstep))[j*img->nchannels + 2]=113; // r

對於多通道浮點型影象:

iplimage* img=cvcreateimage(cvsize(640,480),ipl_depth_32f,3); 

((float *)(img->imagedata + i*img->widthstep))[j*img->nchannels + 0]=111; // b

((float *)(img->imagedata + i*img->widthstep))[j*img->nchannels + 1]=112; // g

((float *)(img->imagedata + i*img->widthstep))[j*img->nchannels + 2]=113; // r

3 ((uchar*)(img1->imagedata + img1->widthstep*pt.y))[pt.x]的具體含義:

(1)這裡img1->imagedata指的影象第一行的首位址,pt.y是指影象的height(影象高畫素數即行數),y乘以img->widthstep(排列的影象行大小)即首位址加上行數乘以每行總數,得到第y行的首位址。widthstep是指影象每行所佔的位元組數,主要要和width區別,width是指每行所含的畫素個數,但是乙個畫素也可能佔乙個位元組,也可能佔三個位元組或者四個。imagedata是指向儲存影象畫素值陣列的指標,內容是這個陣列的首位址,pt.y指的是畫素點的行座標,所以img->imagedata + img->widthstep*pt.y便是該畫素點所在行的首位址,然後再加上該畫素點所在的列,即pt.x,就得到了該畫素點的位址,所以那句**也可以寫成

((uchar*)(img1->imagedata + img1->widthstep*pt.y+pt.x)),

都是指該畫素點的畫素值,至於強制型別轉換,是因為會產生一些負值,而畫素值是不能為負的。

(2)widthstep表示儲存一行畫素需要的位元組數。

widthstep必須是4的倍數,如果8u影象寬度為3,那麼widthstep是4,加乙個位元組補齊。這個影象的一行需要4個位元組,只使用前3個,最後乙個空在那兒不用。也就是乙個寬3高3的影象的imagedata資料大小為4*3=12位元組。如果32f的影象,那麼widthstep=width*4。

OpenCV 操作畫素(訪問畫素值)

為構建計算機視覺應用程式,我們需要學會訪問影象的內容,有時也要修改或者建立影象。本章將講講如何操作影象的元素 即畫素 影象本質上就是由陣列組成的矩陣。opencv使用了cv mat結構來操作影象。矩陣中的每乙個元素表示乙個畫素。對灰度影象而言,畫素是8位無符號數 資料型別為unsigned char...

opencv 讀取畫素值

話不多說,新手在不斷學習,剛剛看見讀取每個畫素點值很是好奇。include include using namespace std int main 不過通過上訴方法在速度方面會比較慢。可以通過如下方法加快訪問,更改速度。iplimage成員有 int nsize int id 比較重要的兩個元素是...

opencv修改畫素值

mat物件讀取,用矩陣 二維陣列 儲存的畫素值 include include using namespace std using namespace cv intmain imshow 原圖 src int height src.rows 的高度 int width src.cols 的寬度 灰度...