當前位置:首頁 » 操作系統 » 直方圖均衡化演算法

直方圖均衡化演算法

發布時間: 2023-06-08 20:38:41

⑴ 說明直方圖匹配與直方圖均衡兩種處理演算法原理的區別.考慮在什麼情況

首先需要說明的是,如果你說的是一道完整的題目,則這道題目沒有唯一解,因為題目中沒有說明原始圖像的灰度級數(比如原始圖像是16個灰度級的,或者是32個灰度級的,等等)。為了給你提供一個解題思路,現在人為假設原始圖像是16個灰度級的,其它灰度級的解法類似。1、圖像的灰度直方圖求法為:(1)先計算圖像中各個灰度級的出現頻率,用h(i)表示灰度級i的出現頻率,其值等於灰度級出現次數/圖像像素個數:h(0)=2/16h(1)=1/16h(2)=3/16h(3)=2/16h(4)=0/16h(5)=1/16h(6)=4/16h(7)=1/16h(8)=1/16h(9)=1/16h(10)=h(11)=h(12)=h(13)=h(14)=h(15)=0/16。然後以灰度級i為橫軸,出現頻率h(i)為縱軸即可繪制出圖像對應的直方圖。(2)圖像進行直方圖均衡化處理的過程為:先計算累積分布,用r(i)表示灰度級i的累積分布:r(0)=h(0)=2/16r(1)=r(0)+h(1)=2/16+1/16=3/16r(2)=r(1)+h(2)=3/16+3/16=6/16r(3)=r(2)+h(3)=6/16+2/16=8/16r(4)=r(3)+h(4)=8/16+0/16=8/16r(5)=r(4)+h(5)=8/16+1/16=9/16r(6)=r(5)+h(6)=9/16+4/16=13/16r(7)=r(6)+h(7)=13/16+1/16=14/16r(8)=r(7)+h(8)=14/16+1/16=15/16r(9)=r(8)+h(9)=15/16+1/16=16/16=1r(10)=r(11)=r(12)=r(13)=r(14)=r(15)=1將累積分布進行量化(量化時需要用到原始圖像的灰度級數,這也是為什麼前面需要說明的原因),量化後的灰度級用rq(i)表示,量化公式為rq(i)=ROUND(r(i)*15),(說明:量化公式中的15等於原始圖像灰度級數減1),可得:rq(0)=ROUND(r(0)*15)=2rq(1)=ROUND(r(1)*15)=3rq(2)=ROUND(r(2)*15)=6rq(3)=ROUND(r(3)*15)=8rq(4)=ROUND(r(4)*15)=8rq(5)=ROUND(r(5)*15)=8rq(6)=ROUND(r(6)*15)=12rq(7)=ROUND(r(7)*15)=13rq(8)=ROUND(r(8)*15)=14rq(9)=ROUND(r(9)*15)=15rq(10)=ROUND(r(10)*15)=15rq(11)=ROUND(r(11)*15)=15rq(12)=ROUND(r(12)*15)=15rq(13)=ROUND(r(13)*15)=15rq(14)=ROUND(r(14)*15)=15rq(15)=ROUND(r(15)*15)=15因此,原始圖像中的灰度級和均化後圖像中的灰度級之間的對應關系為:0->21->32->63->84->85->86->127->138->149->1510->1511->1512->1513->1514->1515->15將原始圖像中對應的灰度值安裝上述對應關系替換成相應的灰度值,即可得到均化圖像,結果如下:38138612212146128156122(在電腦上直接做的,僅供參考。ROUND(.)表示四捨五入。)

⑵ 直方圖均衡化

想像一下,如果一副圖像中的大多是像素點的像素值都集中在一個像素值范圍之內會怎樣呢?例如,如果一幅圖片整體很亮,那所有的像素值應該都會很高。但是一副高質量的圖像的像素值分布應該很廣泛。所以你應該把它的直方圖做一個橫向拉伸(如下圖),這就是直方圖均衡化要做的事情。通常情況下,這種操作會改善圖像的對比度。

這種方法通常用來增加許多圖像的全局 對比度 ,尤其是當圖像的有用數據的對比度相當接近的時候。通過這種方法, 亮度 可以更好地在直方圖上分布。這樣就可以用於增強局部的對比度而不影響整體的對比度,直方圖均衡化通過有效地擴展常用的亮度來實現這種功能。

這種方法對於背景和前景都太亮或者太暗的圖像非常有用,這種方法尤其是可以帶來 X光 圖像中更好的 骨骼 結構顯示以及曝光過度或者曝光不足 照片 中更好的細節。這種方法的一個主要優勢是它是一個相當直觀的技術並且是 可逆 操作,如果已知均衡化 函數 ,那麼就可以恢復原始的直方圖,並且計算量也不大。這種方法的一個缺點是它對處理的數據不加選擇,它可能會增加背景 雜訊 的對比度並且降低有用 信號 的對比度。

我們先來看看相應的直方圖和累積直方圖,然後使用 OpenCV 進行直方圖均衡化。

我們可以看出來直方圖大部分在灰度值較高的部分,而且分布很集中。而我們希望直方圖的分布比較分散,能夠涵蓋整個 x 軸。所以,我們就需要一個變換函數幫助我們把現在的直方圖映射到一個廣泛分布的直方圖中,這就是直方圖均衡化。

**限制對比度自適應性直方圖均衡化 CLAHE **

在上邊做的直方圖均衡化會改變整個圖像的對比度,但是在很多情況下,這樣做的效果並不好。的確在進行完直方圖均衡化之後,圖片背景的對比度被改變了。但是你再對比一下兩幅圖像中雕像的面圖,由於太亮我們丟失了很多信息。

原理:

為了解決這個問題,我們需要使用自適應的直方圖均衡化 CLAHE (Contrast Limited Adaptive Histogram Equalization)。這種情況下,整幅圖像會被分成很多小塊,這些小塊被稱為「tiles」(在 OpenCV 中 tileGridSize默認是 8x8),然後再對每一個小塊分別進行直方圖均衡化(跟前面類似)。所以在每一個的區域中,直方圖會集中在某一個小的區域中(除非有雜訊干擾)。如果有雜訊的話,雜訊會被放大。為了避免這種情況的出現,要使用對比度限制。

CLAHE中,每一個像素鄰域都要進行對比度限制,從而得到對應的變換函數,被用來降低AHE中雜訊的增強,這主要是通過限制AHE中的對比度增強來實現的。像素周圍鄰域雜訊的增強主要是由變換函數的斜率造成的,由於像素鄰域的雜訊與鄰域的CDF成正比,因此也與鄰域直方圖在該中心像素位置的值成正比,CLAHE之所以能夠限制對比度,是因為它在計算鄰域的CDF之前在指定閾值處對直方圖進行了修剪,如下圖所示,這一做法不僅限制了CDF的斜率,也限制了變換函數的斜率,其中對直方圖進行切割所使用的閾值,被稱作修剪限制度(clip limit),這個參數不僅依賴於直方圖的歸一化,而且依賴於像素鄰域的size大小,通常設為3到4之間。

對於每個小塊來說,如果直方圖中的 bin 超過對比度的上限的話,就把其中的像素點均勻分散到其他 bins 中,然後在進行直方圖均衡化。最後,為了去除每一個小塊之間「人造的」(由於演算法造成)邊界,再使用雙線性差值,與原圖做圖層濾色混合操作(可選)。

實現:

參考文獻:
網址: 直方圖均衡化
Adaptive_histogram_equalization
書籍:《數字圖像處理》《OpenCV-Python 中文教程》

熱點內容
群暉取消上傳 發布:2024-07-20 08:13:56 瀏覽:504
雲伺服器怎麼充值系統 發布:2024-07-20 07:45:50 瀏覽:756
蕾姆雙飛解壓碼 發布:2024-07-20 07:43:14 瀏覽:314
雲伺服器怎麼掛機器人 發布:2024-07-20 07:30:23 瀏覽:2
快閃記憶體卡屬於內存卡還是外存儲 發布:2024-07-20 07:26:15 瀏覽:365
碧藍航線加速腳本 發布:2024-07-20 07:17:34 瀏覽:696
博途小化按鈕腳本 發布:2024-07-20 07:08:08 瀏覽:600
安卓其他垃圾怎麼刪 發布:2024-07-20 06:49:03 瀏覽:731
周星馳美人魚ftp 發布:2024-07-20 06:37:03 瀏覽:1002
手機安卓怎麼壓縮軟體 發布:2024-07-20 06:36:26 瀏覽:345