java对灰度值进行线性变换,灰度变换
定義:灰度變換是按某一既定的變換關系逐點改變源圖像中每一個像素灰度值。目的是為了按照目的改善顯示效果,增強某些圖像信號,調整灰度分布,是一種空域圖像處理方法。
公式
基于當前像素值s和某一灰度轉換函數T,將當前像素值s轉化為另一像素值值S:
主要可以起到以下作用:改善圖像的質量,提高圖像的對比度;突出圖像感興趣的特征或者抑制不需要的特征;改變圖像的直方圖分布。根據顯示需求的不同,可以選擇或設計不同的T函數。
常見的灰度變換形式
線性變換
線性變換適用于以下情景:在曝光度不足或過度的情況下,圖像灰度可能會局限在一個很小的范圍內。用一個線性單值函數,對圖像內的每一個像素做線性擴展,將有效地改善圖像視覺效果,適用于全場像素的灰度增強及擴展,轉換函數如下:
其中,a的大小主要控制圖像的對比度,a>1時,對比度得到增強,a<1時,對比度減弱,b主要控制整體灰度值的變換,配合a取值的不同取得不同的效果,a=1 b>0則整體變亮,a=1 b<0則整體變暗。
分段線性變換
為了突出感興趣的灰度區間,相對抑制那些不感興趣的灰度區間,可采用分段線性變換。常用的三段線性變換如下圖所示,點(r1,s1)和(r2,s2)的位置之間的灰度范圍可以實現比例最大的擴展,操縱著灰度增強的范圍。
對數變換
對數變換,將源圖像中范圍較窄的低灰度值映射到范圍較寬的灰度區間,同時將范圍較寬的高灰度值區間映射為較窄的灰度區間,從而擴展了灰度值較低的像素值,對低灰度值的細節進行增強,而對應的反對數變換的作用是壓縮灰度值較低的區間,擴展高灰度值的區間,增強高灰度的細節,主要形式如下所示:
同時對數變換被廣泛應用于灰度動態范圍的壓縮(如超聲圖像解包絡以后采用對數壓縮),從而能夠更好的壓縮過大的動態范圍,顯示圖像細節。
伽馬變換
伽馬變換主要用于圖像的校正,對灰度值過高(圖像過亮)或者過低(圖像過暗)的圖像進行修正,增加圖像的對比度,從而改善圖像的顯示效果。表達式如下:
當γ<1時,γ的值越小,對圖像低灰度值的擴展越明顯;當γ>1時,γ的值越大,對圖像高灰度值部分的擴展越明顯。這樣就能夠顯示更多的圖像的低灰度或者高灰度細節
參考文獻
[1]Baidoo E. Implementation of Gray Level Image Transformation Techniques[J]. International Journal of Modern Education & Computer Science, 2018, 10(5).
[2]https://www.javatpoint.com/dip-gray-level-transformation
[3]https://www.tutorialspoint.com/dip/gray_level_transformations.htm
本文為原創內容,所有權歸本網站所有,禁止轉載。違反上述聲明者,將追究其相關法律責任
- END -
405
總結
以上是生活随笔為你收集整理的java对灰度值进行线性变换,灰度变换的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php ci框架 模板输出,CodeIg
- 下一篇: oracle 用户创建角色,oracle