第六節、調整影象亮度與對比度
影象變換可以看作如下:
-畫素變換 –點操作
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定義...