圖像的點運算

1.線性點運算

原始圖像的灰度值咱們能夠使用f(x,y)來表示在(x,y)處的圖像灰度值,咱們通過點運算輸出的圖像灰度值則爲:g(x,y).爲了表示的方便,咱們一般使用r來表示原始圖像的灰度值,s用來表示處理後圖像的灰度值。html

線性點運算的公式以下:s=ar+b,以下圖所示:函數

 

 a和b取值的大小影響着咱們輸出灰度圖像的性質,總結也在上圖當中實現了。若是a爲負值,那麼圖像當中的亮色區域將會變暗,暗色的區域將會變亮。htm

2.分段線性點運算

咱們對本身感興趣的區域分別進行相應的點運算,最後獲得本身理想的效果,以下圖所作的分段線性運算所示:blog

分段函數描述以下:
開發

固然除了線性點運算,咱們還有一種更加廣泛的運算則是非線性點運算了,咱們下面來看看get

3.非線性點運算

通常常見的有對數變換,變換的公式爲s=clog(1+r),其中的c僅僅是一個常數,變換後的圖像以下:
opencv

這個方法主要用於下降對比度,將低灰度的地方進行擴展,高灰度的地方進行壓縮,這樣就獲得了最終圖像輸出的結果。擴展

2.冪次變換方法

變換的公式和圖像以下:
im

可是很遺憾的是,咱們的在opencv的開發當中通常不知道如何進行線性點運算,通常都是進行將整張圖的灰度值增長多少或者減小多少的運算,而非線性或者非線性的運算,有點難堪,可是matlab實現起來卻簡單得多了。matlab的實現能夠參考這篇博文:http://www.javashuo.com/article/p-yaouywtf-ce.html

相關文章
相關標籤/搜索