Retinex图像增强算法
Retinex圖像增強算法
- 前言
- 參考
- 一 Retinex理論基礎
- 二 單尺度SSR(Single Scale Retinex)原理
- 三 算法的實現流程
- 四 其它Retinex改進算法(了解)
- 多尺度的Retinex——MSR
- 彩色恢復多尺度Retinex——MSRCR,MSRCP等
前言
本人第一次寫博客,記錄整理一下自己學的知識,供大家參考,有寫的不好的地方,希望大家諒解。如有錯誤,希望大家提出,本人予以改正。
本文參考以下文章,如有侵犯,請聯系我處理。
參考
參考1
參考2
參考3
一 Retinex理論基礎
Retinex理論始于Land和McCann于20世紀60年代作出的一系列貢獻,其基本思想是人感知到某點的顏色和亮度并不僅僅取決于該點進入人眼的絕對光線,還和其周圍的顏色和亮度有關。Retinex這個詞是由視網膜(Retina)和大腦皮層(Cortex)兩個詞組合構成的。Land之所以設計這個詞,是為了表明他不清楚視覺系統的特性究竟取決于此兩個生理結構中的哪一個,抑或是與兩者都有關系。
Retinex理論基于一下假設:
1.真實世界是無顏色的,我們所感知的顏色是光與物質的相互作用的結果。我們見到的水是無色的,但是水膜—肥皂膜卻是顯現五彩繽紛,那是薄膜表面光干涉的結果。
2.每一顏色區域由給定波長的紅、綠、藍三原色構成的;
3.三原色決定了每個單位區域的顏色。
Retinex 理論的基本內容:
物體的顏色是由物體對長波(紅)、中波(綠)和短波(藍)光線的反射能力決定的,而不是由反射光強度的絕對值決定的;物體的色彩不受光照非均性的影響,具有一致性,即Retinex理論是以色感一致性(顏色恒常性)為基礎的。
不同于傳統的線性、非線性的只能增強圖像某一類特征的方法,Retinex可以在動態范圍壓縮、邊緣增強和顏色恒常三個方面達到平衡,因此可以對各種不同類型的圖像進行自適應的增強。
如下圖所示,觀察者所看到的物體的圖像S是由物體表面對入射光L反射得到的,反射率R由物體本身決定,不受入射光L變化。
40多年來,研究人員模仿人類視覺系統發展了Retinex算法,從單尺度Retinex算法-SSR,改進成多尺度加權平均的Retinex算法-MSR,再發展成彩色恢復多尺度MSRCR算法和色彩增益加權的AutoMSRCR算法。
本文主要講解單尺度SSR(Single Scale Retinex)
二 單尺度SSR(Single Scale Retinex)原理
Retinex理論的基本假設是原始圖像S是光照圖像L和反射率圖像R的乘積,即可表示為下式的形式:
S(x,y)=R(x,y)?L(x,y)S(x,y)=R(x,y)*L(x,y) S(x,y)=R(x,y)?L(x,y)基于Retinex的圖像增強的目的就是從原始圖像S中估計出光照L,從而分解出R,消除光照不均的影響,以改善圖像的視覺效果,正如人類視覺系統那樣。在處理中,通常將圖像轉至對數域,即
s=logS(x,y),l=logL(x,y),r=logR(x,y)............(1)s=logS(x,y),l=logL(x,y),r=logR(x,y)............(1) s=logS(x,y),l=logL(x,y),r=logR(x,y)............(1)所以有:
logS(x,y)=logR(x,y)+logL(x,y).........................(2)logS(x,y)=logR(x,y)+logL(x,y).........................(2) logS(x,y)=logR(x,y)+logL(x,y).........................(2)轉換得:
r(x,y)=logR(x,y)=logS(x,y)L(x,y).............................(3)r(x,y)=logR(x,y)=log\frac{S(x,y)}{L(x,y)}.............................(3) r(x,y)=logR(x,y)=logL(x,y)S(x,y)?.............................(3)r(x,y)=logS(x,y)?log[F(x,y)?S(x,y)]............(4)r(x,y)=logS(x,y)?log[F(x,y)?S(x,y)]............(4) r(x,y)=logS(x,y)?log[F(x,y)?S(x,y)]............(4)
這里,r(x,y)r(x, y)r(x,y)是輸出圖像,上式中后面中括號里的運算是卷積運算。F(x,y)F(x, y)F(x,y)是中心環繞函數,表示為:
F(x,y)=λe?(x2+y2)c2..................................................(5)F(x,y)=\lambda e^{\frac{-(x^2+y^2)}{c^2}}..................................................(5) F(x,y)=λec2?(x2+y2)?..................................................(5)式中ccc是高斯環繞尺度,λλλ是一個尺度,它的取值必須滿足下式:
∫∫F(x,y)dxdy=1..............................................(6)\int \int F(x,y)dxdy=1..............................................(6) ∫∫F(x,y)dxdy=1..............................................(6)上面的式中可以看出,SSR算法中的卷積是對入射圖像的計算,其物理意義是通過計算像素點與周圍區域在加權平均的作用下,估計圖像中照度的變化,并將L(x,y)L(x,y)L(x,y)去除,只保留S(x,y)S(x,y)S(x,y)屬性。
三 算法的實現流程
1)將圖像進行log變換
2)然后將log圖像進行高斯模糊
3)利用原圖和模糊之后的log圖像做差分
單尺度Retinex算法SSR的實現流程可以概括如下:
若原圖為灰度圖:將圖像各像素的灰度值由整數型(int)轉換為浮點數(float),并轉換到對數域;
若原圖為彩色圖:將顏色分通道處理,每個分量像素值由整數型(int)轉換為浮點數(float),并轉換到對數域;
若原圖是灰度圖,則只有一個r(x,y)r(x, y)r(x,y);
若原圖為彩色圖,則每個通道都有一個對應的r(x,y)r(x, y)r(x,y);
前面的公式中,中心環繞函數F(x,y)F(x, y)F(x,y)用的是低通函數,這樣能夠在算法中估計出入射圖像對應原始圖像的低頻部分。從原始圖像中除去低頻照射部分,就會留下原始圖像所對應的高頻分量。高頻分量很有價值,因為在人類的視覺系統中,人眼對邊緣部分的高頻信息相當敏感,所以SSR算法可以較好的增強圖像中的邊緣信息。
由于SSR算法中所選用的高斯函數特點,對于動態范圍大幅度壓縮和對比度增強兩個指標,增強后的圖像不能同時保證。但是為了平衡兩種增強效果,就必須選擇一個較為恰當的高斯尺度常量C。C值一般取值在80–100之間。
四 其它Retinex改進算法(了解)
多尺度的Retinex——MSR
通俗解釋:就是再多個單尺度Retinex做平均,區別是在第二步高斯模糊是選擇的sigma是不同的
原始圖像進行三次SSR
高斯模糊選擇15,80,200作為高斯模糊sigma參數
對三次的SSR結果做平均即為MSR圖像
彩色恢復多尺度Retinex——MSRCR,MSRCP等
對多尺度MSR結果做了色彩平衡,歸一化,增益和偏差線性加權
總結
以上是生活随笔為你收集整理的Retinex图像增强算法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 黑马程序员,黑马论坛---云2期,已就业
- 下一篇: 前端学习(2901):javascrip