圖像的點運算


1.線性點運算

原始圖像的灰度值我們可以使用f(x,y)來表示在(x,y)處的圖像灰度值,我們經過點運算輸出的圖像灰度值則為:g(x,y).為了表示的方便,我們通常使用r來表示原始圖像的灰度值,s用來表示處理后圖像的灰度值。

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

 

 a和b取值的大小影響着我們輸出灰度圖像的性質,總結也在上圖當中實現了。如果a為負值,那么圖像當中的亮色區域將會變暗,暗色的區域將會變亮。

2.分段線性點運算

我們對自己感興趣的區域分別進行相應的點運算,最后得到自己理想的效果,如下圖所做的分段線性運算所示:

分段函數描述如下:

當然除了線性點運算,我們還有一種更加普遍的運算則是非線性點運算了,我們下面來看看

3.非線性點運算

一般常見的有對數變換,變換的公式為s=clog(1+r),其中的c僅僅是一個常數,變換后的圖像如下:

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

2.冪次變換

變換的公式和圖像如下:

但是很遺憾的是,我們的在opencv的開發當中一般不知道如何進行線性點運算,一般都是進行將整張圖的灰度值增加多少或者減少多少的運算,而非線性或者非線性的運算,有點難堪,但是matlab實現起來卻簡單得多了。matlab的實現可以參考這篇博文:https://www.cnblogs.com/geeksongs/p/11037415.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM