OpenCV基礎入門(六)

2021-10-08 14:27:48 字數 1528 閱讀 1784

第六節、調整影象亮度與對比度

影象變換可以看作如下:

-畫素變換 –點操作

g(i,j)=af(i,j)+β其中a>0,β是增益變數。

-鄰域操作 –區域

調整影象亮度和對比度屬於畫素變換-點操作

重要的api

mat new_image = mat::zeros( image.size(), image.type() );  建立一張跟原影象大小和型別一致的空白影象、畫素值初始化為0

saturate_cast(value)確保值大小範圍為0~255之間

mat.at(y,x)[index]=value 給每個畫素點每個通道賦值

**演示:

#include #include using namespace cv;

int main(int argc, char** ar**)

char input_win = "input image";

//cvtcolor(src, src, cv_bgr2gray);//轉換顏色彩色轉黑白

namedwindow(input_win, cv_window_autosize);//顯示視窗(視窗名 + 根據自動改變視窗大小)

imshow(input_win, src);

// contrast and brigthtness changes

int height = src.rows;

int width = src.cols;

dst = mat::zeros(src.size(), src.type());相當於建立一張黑色的圖,每個畫素的每個通道都為0,scalar(0,0,0);

float alpha = 1.2;//對比度

float beta = 80;//亮度

mat m1;

src.convertto(m1, cv_32f);//將資料裝換為3f(f--float浮點型)資料,不然獲取不了的資料只能用vec3b(b--int整型)

for (int row = 0; row < height; row++)

else if (src.channels() == 1)

} }char output_title = "contrast and brightness change demo";//顯示改變後的視窗

namedwindow(output_title, cv_window_autosize);

imshow(output_title, dst);

waitkey(0);

return 0;

}

opencv 入門基礎

這是深圳大學於老師的文件裡的程式,就是為了鞏固基礎,加深對影象的理解。using namespace std using namespace cv int main for int i 0 i colorimage.rows i imshow 灰度圖 grayimage imshow 彩色圖 col...

OpenCV基礎入門(五)

理論 線性混合操作 線性影象混合公式 g x 1 a f0 x a f1 x a 0,1 其中a的取值範圍為0 1之間 相關api addweighted void cvaddweighted const cvarr src1,double alpha,const cvarr src2,double...

OpenCV基礎入門(九)

第九節 形態學操作 一 原理 影象形態學操作 基於形狀的一系列影象處理操作的合集,主要是基於集合論基礎上的形態學數學 形態學有四個基本操作 腐蝕 膨脹 開 閉 膨脹與腐蝕是影象處理中最常用的形態學操作手段 形態學操作 膨脹 跟卷積操作類似,假設有影象a和結構元素b,結構元素b在a上面移動,其中b定義...