導航:首頁 > 源碼編譯 > 調整對比度演算法

調整對比度演算法

發布時間:2023-09-20 03:31:51

❶ 求圖像處理演算法中,調整亮度、對比度、飽和度的演算法!

我覺得你了解這幾個調整工具的演算法,還沒有了解一下圖層混合模式的計算方法有意義。亮度就是一幅照片中的黑白灰分布情況,對比度是亮部和暗部的差距,飽和度就是顏色純度,前兩者是灰度概念,飽和度才和顏色有關系。
而且亮度、對比度作為概念來理解,當然很有意義,但是這個調整工具PS已經把它弱化了,因為它調整太過粗放,用色階和曲線都能更精確的實現。

❷ OpenCV C++(四)----對比度增強

對比度增強或者稱為對比度拉伸就是圖像增強技術的一種,它主要解決由於圖像的灰度級范圍較小造成的對比度較低的問題,目的就是將輸出圖像的灰度級放大到指定的程度,使得圖像中的細節看起來更加清晰。對比 度增強有幾種常用的方法,如線性變換、分段線性變換、伽馬變換、直方圖正規化、直方圖均衡化、局部自適應直方圖均衡化等。

灰度直方圖是圖像灰度級的函數, 用來描述每個灰度級在圖像矩陣中的像素個數或者佔有率(概率)。

OpenCV提供了函數 calcHist 來實現直方圖的構建,但是在計算8點陣圖的灰度直方圖 時,它使用起來略顯復雜。下面是OpenCV源碼

可以定義函數 calcGrayHist 來計算灰度直方圖,其中輸入參數為8點陣圖,將返回的灰度直方圖存儲為一個1行256列的 Mat 類型。

圖像對比度是通過灰度級范圍來度量的,而灰度級范圍可通過觀察灰度直方圖得到,灰度級范圍越大代表對比度越高;反之,對比度越低,低對比度的圖像在視覺上給人的感覺是看起來不夠清晰,所以通過演算法調整圖像的灰度值,從而調整圖像的對比度是有必要的。最簡單的一種對比度增強方法是通過灰度值的線性變換來實現的。

當a=1,b=0時,O為I的一個副本;如果a>1,則輸出圖像O的對 比度比I 有所增大;如果0<a< 1,則O的對比度比I有所減小。而b值的改變,影響的是輸出圖像的亮度,當b> 0時,亮度增加;當b<0時,亮度減小。

在OpenCV中實現一個常數與矩陣相乘有多種方式。
1、convertTo

註:當輸出矩陣的數據類型是 CV_8U 時, 大於255的值會自動截斷為255

2、矩陣乘法運算

使用乘法運算符「*」, 無論常數是什麼數據類型, 輸出矩陣的數據類型總是和輸入矩陣的數據類型相同,當數據類型是 CV_8U 時,在返回值中將大於255的值自動截斷為255。

3、convertScaleAbs

直方圖正規化是一種自動選取a和b的值的線性變換方法。

利用 minMaxLoc 函數不僅可以計算出矩陣中的最大值和最小值, 而且可以求出最大 值的位置和最小值的位置。 當然,
在使用過程中如果只想得到最大值和最小值, 則將其 他的變數值設為 NULL 即可。

OpenCV提供的函數: normalize()
使用函數 normalize 對圖像進行對比度增強時, 經常令參數 norm_type=NORM_MINMAX , 和直方圖正規化原理詳解中提到的計算方法是相同的, 參數 alpha 相當於 Omax , 參數 beta 相當於 Omin 。 注意, 使用 normalize 可以處理多通道矩陣, 分別對每一個通道進行正規化操作。

非線性變換

假設輸入圖像為I,寬為W、 高為H,首先將其灰度值歸一化到[0,1]范圍,對於8位 圖來說,除以255即可。 I (r, c) 代表歸一化後的第r行第c列的灰度值, 輸出圖像記為 O, 伽馬變換就是令 O(r, c) =I(r, c) γ , 0≤r<H, 0≤c< W,

當γ=1時, 圖像不變。 如果圖像整體或者感興趣區域較暗, 則令0< γ< 1可以 增加圖像對比度; 相反, 如果圖像整體或者感興趣區域較亮, 則令γ>1可以降低圖像對比度。

伽馬變換在提升對比度上有比較好的效果, 但是需要手動調節γ值。

全局直方圖均衡化操作是對圖像I進行改變, 使得輸出圖像O的灰度直方圖 hist O 是「平」的, 即每一個灰度級的像素點個數是「相等」的。 注意,其實這里的「相等」不是嚴格意義上的等於, 而是約等於,

上述分別為I和O的累加直方圖

總結,對於直方圖均衡化的實現主要分四個步驟:

OpenCV實現的直方圖均衡化函數 equalize-Hist , 其使用方法很簡單, 只支持對 8點陣圖 的處理。

雖然全局直方圖均衡化方法對提高對比度很有效,但是均衡化處理以後暗區域的雜訊可能會被放大,變得清晰可 見,而亮區域可能會損失信息。為了解決該問題, 提出了自適應直方圖均衡化(Aptive Histogram Equalization) 方法。

自適應直方圖均衡化首先將圖像劃分為不重疊的區域塊(tiles) ,然後對每一個塊分別進行直方圖均衡化。 顯然, 在沒有雜訊影響的情況下, 每一個小區域的灰度直方圖會被限制在一個小的灰度級范圍內; 但是如果有雜訊, 每一個分割的區域塊執行直方圖均衡化後, 雜訊會被放大。為了避免出現雜訊這種情況, 提出了「限制對比度」(Contrast Limiting) [3],如果直方圖的bin超過了提前預設好的「限制對比度」, 那麼會被裁減, 然 後將裁剪的部分均勻分布到其他的bin, 這樣就重構了直方圖。

OpenCV提供的函數 createCLAHE 構建指向 CLAHE 對象的指針, 其中默認設置「限制 對比度」為40,塊的大小為8×8。

❸ 用matlab實現photoshop演算法自動對比度

imadjust是matlab自帶函數,用於對比度增強 設原圖象f(x,y)的灰度范圍是[m,M],如果希望調整後的圖象g(x,y)的灰度范圍是[n,N],可以通過下面的程序實現:

閱讀全文

與調整對比度演算法相關的資料

熱點內容
明日之後安卓太卡怎麼辦 瀏覽:502
如何使用命令方塊找到村莊 瀏覽:766
泛函壓縮映像原理 瀏覽:521
win10清除文件夾瀏覽記錄 瀏覽:964
如何查看伺服器域中所有服務 瀏覽:384
學mastercam91編程要多久 瀏覽:999
如何查伺服器地址和埠 瀏覽:911
教學雲平台app怎麼下載 瀏覽:389
單片機510教學視頻 瀏覽:624
陝西信合app怎麼查看自己的存款 瀏覽:663
風冷冰箱有壓縮機 瀏覽:274
android實現wifi連接wifi 瀏覽:669
飛豬app怎麼幫別人值機 瀏覽:924
筆記本開我的世界伺服器地址 瀏覽:546
怎樣隱藏bat命令 瀏覽:127
android開發創意 瀏覽:138
京劇貓為什麼進不去伺服器 瀏覽:784
怎麼自己免費製作一個手機app 瀏覽:582
python同時迭代兩個變數 瀏覽:740
好分數app家長版怎麼刪除孩子 瀏覽:426