色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          "); //-->

          博客專欄

          EEPW首頁 > 博客 > 【計(jì)算機(jī)視覺】什么是直方圖均衡化?

          【計(jì)算機(jī)視覺】什么是直方圖均衡化?

          發(fā)布人:MrWinter 時(shí)間:2022-03-01 來源:工程師 發(fā)布文章

          計(jì)算機(jī)視覺教程之直方圖均衡化原理


          1 點(diǎn)算子

          點(diǎn)算子是兩個(gè)像素灰度值間的映射關(guān)系,屬于像素的逐點(diǎn)運(yùn)算,相鄰像素不參與運(yùn)算。點(diǎn)算子是最簡(jiǎn)單的圖像處理手段,如:亮度調(diào)整、對(duì)比度調(diào)整、顏色變換、直方圖均衡化等等。


          2 線性灰度變換

          線性灰度變換表達(dá)為:


          image.png


          其中$r_k$、$s_k$分別為輸入、輸出點(diǎn)像素灰度值。


          image.png


          當(dāng)$a>1$時(shí),輸出圖像像素灰度范圍擴(kuò)大,圖像對(duì)比度增強(qiáng),當(dāng)$a<1$時(shí)反之。這是因?yàn)?lt;font color=#F00>**人眼不易區(qū)分相近的灰度值**</font>,因此若圖像灰度值范圍較小,觀感上細(xì)節(jié)不夠清晰。當(dāng)$a=1$、$b\ne0$時(shí),點(diǎn)算子使圖像灰度整體上移或下移,即整體變亮或變暗。


          image.png


          3 直方圖均衡化

          下圖再次給出了關(guān)于圖像對(duì)比度的例子


          image.png


          直方圖均衡化是以累計(jì)分布函數(shù)為核心,將原始圖像灰度直方圖從比較集中的某個(gè)灰度區(qū)間,非線性地映射為在全部灰度范圍內(nèi)的較均勻分布,從而增強(qiáng)對(duì)比度。


          下面闡述直方圖均衡化的數(shù)學(xué)原理。首先作原始圖像灰度的概率直方圖如圖


          image.png


          設(shè)輸入像素灰度值為$r_k$,累計(jì)分布函數(shù)為

          $$C\left( r_k \right) =\frac{1}{n}\sum_{i=0}^k{n_i}$$


          其中$n_i$為圖像中灰度值為$r_i$的像素頻數(shù),$n$為圖像像素總數(shù)。設(shè)輸出像素灰度值為$s_k$,像素范圍為$s_{min}-s_{max}$。期望輸出灰度直方圖是均勻分布,即


          $$P\left( s \right) =\frac{1}{s_{\max}-s_{\min}}\,\,   s_{\min}\leqslant s\leqslant s_{\max}$$


          令$C\left( s_k \right) =C\left( r_k \right)$,即得


          $$\left( C\left( r_k \right) _{\max}-C\left( r_k \right) _{\min} \right) \frac{s_k-s_{\min}}{s_{\max}-s_{\min}}+C\left( r_k \right) _{\min}=C\left( r_k \right) \\\Rightarrow \,\,                                            \frac{s_k-s_{\min}}{s_{\max}-s_{\min}}=\frac{C\left( r_k \right) -C\left( r_k \right) _{\min}}{C\left( r_k \right) _{\max}-C\left( r_k \right) _{\min}}\\\Rightarrow \,\,                                            \frac{s_k-s_{\min}}{s_{\max}-s_{\min}}=C'\left( r_k \right)$$


          所以最終直方圖均衡化的點(diǎn)算子為


          $$s_k=\left( s_{\max}-s_{\min} \right) C'\left( r_k \right) +s_{\min}=T\left( r_k \right)$$


          # 4 代碼實(shí)戰(zhàn)

          按照前文的原理編寫累積分布函數(shù)計(jì)算公式,以及均衡化算子


          ```python

          # 計(jì)算累計(jì)分布函數(shù)

          def C(rk):

            # 讀取圖片灰度直方圖

            # bins為直方圖直方柱的取值向量

            # hist為bins各取值區(qū)間上的頻數(shù)取值

            hist, bins = np.histogram(rk, 256, [0, 256])

            # 計(jì)算累計(jì)分布函數(shù)

            return hist.cumsum()

          ```


          ```python

          # 計(jì)算灰度均衡化映射

          def T(rk):

            cdf = C(rk)

            # 均衡化

            cdf = (cdf - cdf.min()) * (255 - 0) / (cdf.max() - cdf.min()) + 0

            return cdf.astype('uint8')

          ```


          <font size=4 color=#000>均衡化時(shí)直接調(diào)用函數(shù)即可,下面給出完整代碼


          ```python

          import numpy as np

          import cv2 as cv

          from matplotlib import pyplot as plt


          # 計(jì)算累計(jì)分布函數(shù)

          def C(rk):

            # 讀取圖片灰度直方圖

            # bins為直方圖直方柱的取值向量

            # hist為bins各取值區(qū)間上的頻數(shù)取值

            hist, bins = np.histogram(rk, 256, [0, 256])

            # 計(jì)算累計(jì)分布函數(shù)

            return hist.cumsum()


          # 計(jì)算灰度均衡化映射

          def T(rk):

            cdf = C(rk)

            # 均衡化

            cdf = (cdf - cdf.min()) * (255 - 0) / (cdf.max() - cdf.min()) + 0

            return cdf.astype('uint8')



          # 讀取圖片

          img = cv.imread('1.png', 0)

          # 將二維數(shù)字圖像矩陣轉(zhuǎn)變?yōu)橐痪S向量

          rk = img.flatten()


          # 原始圖像灰度直方圖

          plt.hist(rk, 256, [0, 255], color = 'r')

          cv.imshow("原圖像",img)


          # 直方圖均衡化

          imgDst = T(rk)[img]

          cv.imshow("直方圖均衡化后的圖像",imgDst)

          plt.hist(imgDst.flatten(), 256, [0, 255], color = 'b')


          plt.show()

          ```


          看看效果:


          image.png

          均衡化前:


          image.png



          均衡化后:



          image.png


          更多優(yōu)質(zhì)內(nèi)容、更好的閱讀體驗(yàn)、完整配套代碼詳見下方公眾號(hào)“AI技術(shù)社”


          image.png



          *博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。



          關(guān)鍵詞: 計(jì)算機(jī)視覺

          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉