最近在學習數字影象處理,更新一些基礎知識,並使用opencv和c++做復現。
基本的灰度變化就是對影象畫素點做運算,使其滿足我們的需求。
幾種基本的灰度變換,畫素點對應情況如下圖所示:
1、影象反轉
若原影象灰度量級【0-l-1】,則現影象每個畫素點灰度為x,變化後為l-1-x。總體變換效果就是暗的變亮,量的變暗。
1效果展示:void
reverse(mat src1)217
}18 imshow("原圖"
, src);
19 imwrite("
原圖.jpg
", src);
20 imwrite("
變換後圖.jpg
", deimage);
21 imshow("
變換後圖
", deimage);
22 waitkey(0
);23 }
2、對數變換
即將畫素值變為對數形式。由於對數函式的特點,該變換將較暗區域的畫素值對映到較量區域,增加整體影象亮度。
1效果展示:void
logtrans(mat src)28
mat graysrc;
9cvtcolor(src, graysrc, cv_rgb2gray);
10mat yimage(graysrc.size(), cv_32fc1);
11for (int i = 0; i < src.rows; i++)
1217}18
mat dst(graysrc.size(), cv_8uc1);
19 normalize(yimage, dst, 0, 255
, norm_minmax);
20convertscaleabs(dst,dst);
21 imshow("
對數變換
", dst);
22 imwrite("
對數變換.jpg
", dst);
23 waitkey(0
);24
25 }
3、冪律變換
和對數變換相似,將畫素變換為指數形式,公式為cry。不同的是可通過控制引數決定擴大較暗區域或較量區域的大小。畫素變換前後值如下圖:
**略過。參照對數變換,y為5
4、分段變換與灰度分層
分段變換即將不同段的畫素進行不同的畫素變換。 灰度分層只每一層灰度表示不同的資訊。
**略過參照前面圖,結果如下:
灰度分層即找到某閾值,不同灰度面代表不同的影象資訊。大於閾值的設為255,小於閾值設為0,即可看出細節資訊。這點到閾值分割的時候再講。
灰度變換函式
low in high in low out,high out 預設 0 1 gamma預設 1 當gamma 1,對映曲線如圖,將低灰度 對映到 高灰度,呈現效果就是變白 當gamma 1,對映曲線如圖,影象是線性,呈現效果就是沒變 等值對映,否則有變化,得到灰度值擴大或者縮小 當gamma 1,...
灰度變換(上)
正文 空間域增強是指增強構成影象的畫素 影象增強是要突出影象中的某些資訊,同時削弱或去除某些不需要資訊的一種處理方法,以得到對具體應用來說視覺效果更 好 或更 有用 的影象的技術。影象在傳輸或者處理過程中會引入雜訊或使影象變模糊,從而降低了影象質量,甚至淹沒了特徵,給分析帶來了困難。點處理 影象灰度...
灰度變換與空間濾波摘要
基本灰度變換 影象反 s l 1 r 得到等效的 底片 對數變換 伽馬變換 分段線性變換可用於對比度拉伸,灰度級分層 位元平面分層,就是影象用8位元表示,只儲存其中幾個位元的平面 採用閾值處理,比如儲存8位元影象時,大於128的畫素對映為1,小於128對映為0 用於影象的壓縮,直方圖均衡 用於增強影...