imageData 使用方式

2021-07-04 22:49:01 字數 1357 閱讀 7760

(座標是從0開始的,並且是相對影象原點的位置。影象原點或者是左上角 (img->origin=ipl_origin_tl) 或者是左下角 (img->origin=ipl_origin_bl) )

假設有 8-bit 1-通道的影象 i (iplimage* img):

i(x,y) ~ ((uchar*)(img->imagedata + img->widthstep*y))[x]

假設有8-bit 3-通道的影象 i (iplimage* img):

i(x,y)blue ~ ((uchar*)(img->imagedata + img->widthstep*y))[x*3]

i(x,y)green ~ ((uchar*)(img->imagedata + img->widthstep*y))[x*3+1]

i(x,y)red ~ ((uchar*)(img->imagedata + img->widthstep*y))[x*3+2]

例如,給點 (100,100) 的亮度增加 30 ,那麼可以這樣做:

cvpoint pt = ;

((uchar*)(img->imagedata + img->widthstep*pt.y))[pt.x*3] += 30;

((uchar*)(img->imagedata + img->widthstep*pt.y))[pt.x*3+1] += 30;

((uchar*)(img->imagedata + img->widthstep*pt.y))[pt.x*3+2] += 30;

或者更高效地:

cvpoint pt = ;

uchar* temp_ptr = &((uchar*)(img->imagedata + img->widthstep*pt.y))[pt.x*3];

temp_ptr[0] += 30;

temp_ptr[1] += 30;

temp_ptr[2] += 30;

假設有 32-bit 浮點數, 1-通道 影象 i (iplimage* img):

i(x,y) ~ ((float*)(img->imagedata + img->widthstep*y))[x]

現在,一般的情況下,假設有 n-通道,型別為 t 的影象:

i(x,y)c ~ ((t*)(img->imagedata + img->widthstep*y))[x*n + c]

你可以使用巨集 cv_image_elem( image_header, elemtype, y, x_nc )

i(x,y)c ~ cv_image_elem( img, t, y, x*n + c )

也有針對各種影象(包括 4 通道影象)和矩陣的函式(cvget2d, cvset2d), 但是它們非常慢。

Tensorboard開啟方式使用方式

第一步,首先在 裡面給神經網路的結構呀,權重呀,偏執呀等等都起好名字,分好類。然後把這個存到檔案裡面,給檔案起名叫logss,當然這些都是在 裡完成的 再執行 第二步,開啟。對於anaconda下的tensorboard,win系統,先開乙個anaconda prompt,然後acitvate te...

amCharts使用方式

2 邊框全域性設定 true 44left 20520 center left nominal ffcc00 left inflation adjusted 999999 false amcharts完全免費,使用很簡單,完全不需要懂任何的程式語言,我們只需要畫葫蘆照搬三個步驟即可 1 根據它提供的...

C List使用方式

所屬命名空間 system.collections.generic list類是arraylist 類的泛型等效類。該類使用大小可動態增加的一維陣列實現ilist泛型介面。泛型的好處 它為使用 c 語言編寫物件導向程式增加了極大的效力和靈活性。不會強行對值型別進行裝箱和拆箱,或對引用型別進行向下強制...