C語言數字圖像處理---1.4直方圖拉伸和直方圖均衡化

        本篇將延續上一篇的內容,對直方圖進行擴展,講述直方圖拉伸和直方圖均衡化兩個內容,並通過簡單的C語言來實現這兩個基礎功能,讓初學者通俗易懂。

直方圖拉伸

[定義與算法]

        直方圖拉伸也叫做灰度拉伸或者對比度拉伸,就是將一副圖像的直方圖填滿整個灰度等級範圍,即0-255之間。可能新手會不太理解,如下圖Fig.1所示,左邊爲原圖的灰度直方圖,可以看到,像素大多數集種在0-128範圍內,根據上一小節我們所學的知識,這張圖應該表現爲顏色比較暗的效果。直方圖拉伸之後,效果如右邊圖(b)所示,像素分佈填充到了0-255之間的灰度級,根據上一小節內容,我們可以猜想,這張圖進行直方圖拉伸後,明顯變亮了。

        如何進行直方圖拉伸?我們以一個顏色通道,比如灰度通道爲例,直方圖拉伸的算法如下: 

        1.假設原圖S內任意一點像素P(i,j),對原圖S計算灰度通道中的最小灰度級mingray和最大灰度級maxgray,公式如下:

                                                                        

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章