圖像處理灰度變換實驗_第1頁
圖像處理灰度變換實驗_第2頁
圖像處理灰度變換實驗_第3頁
圖像處理灰度變換實驗_第4頁
圖像處理灰度變換實驗_第5頁
已閱讀5頁,還剩21頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、一.實驗名稱:空間圖像增強(一)一 實驗目的1 熟悉和掌握利用matlab工具進行數(shù)字圖像的讀、寫、顯示、像素處理等數(shù)字圖像處理的基本步驟和流程。2 熟練掌握各種空間域圖像增強的基本原理及方法。3 熟悉通過灰度變換方式進行圖像增強的基本原理、方法和實現(xiàn)。4 熟悉直方圖均衡化的基本原理、方法和實現(xiàn)。二 實驗原理(1) 數(shù)字圖像的灰度變換灰度變換是圖像增強的一種經(jīng)典而有效的方法?;叶茸儞Q的原理是將圖像的每一個像素的灰度值通過一個函數(shù),對應到另一個灰度值上去從而實現(xiàn)灰度的變換。常見的灰度變換有線性灰度變換和非線性灰度變換,其中非線性灰度變換包括對數(shù)變換和冪律(伽馬)變換等。1、線性灰度變換1)當圖像

2、成像過程曝光不足或過度,或由于成像設備的非線性和圖像記錄設備動態(tài)范圍太窄等因素,都會產(chǎn)生對比度不足的弊病,使圖像中的細節(jié)分辨不清,圖像缺少層次。這時,可將灰度范圍進行線性的擴展或壓縮,這種處理過程被稱為圖像的線性灰度變換。對灰度圖像進行線性灰度變換能將輸入圖像的灰度值的動態(tài)范圍按線性關系公式拉伸擴展至指定范圍或整個動態(tài)范圍。2)令原圖像f(x,y)的灰度范圍為a,b,線性變換后得到圖像g(x,y),其灰度范圍為c,d,則線性灰度變換公式可表示為 (1)由(1)式可知,對于介于原圖像f(x,y)的最大和最小灰度值之間的灰度值,可通過線性變換公式,一一對應到灰度范圍c,d之間,其斜率為(d-c)/

3、(b-a);對于小于原圖像的最小灰度值或大于原圖像的最大灰度值的灰度值,令其分別恒等于變換后的最小和最大灰度值。變換示意圖如圖1所示。圖1 線性灰度變換示意圖當斜率大于一時,變換后的灰度值范圍得到拉伸,圖像對比度得到提高;當斜率小于一時,變換后的灰度值范圍被壓縮,最小與最大灰度值的差變小,圖像對比度降低;當斜率等于一時,相當于對圖像不做變換。3) 由上述性質(zhì)可知,線性灰度變換能選擇性地加強或降低特定灰度值范圍內(nèi)的對比度,故線性灰度變換同樣也可做分段處理:對于有價值的灰度范圍,將斜率調(diào)整為大于一,用于圖像細節(jié);對于不重要的灰度范圍,將圖像壓縮,降低對比度,減輕無用信息的干擾。最常用的分段線性變換

4、的方法是分三段進行線性變換。在原圖像灰度值的最大值和最小值之間設置兩個拐點,在拐點處,原圖像的灰度值分別為r1,r2,該拐點對應的變換后的圖像的灰度值分別為s1,s2,另外,取原圖像灰度的最小值為r0,最大值為rm,對應的變換后的灰度值分別為s0,sm。則分段線性灰度變換公式為 (2)調(diào)整公式中的各個參數(shù),即可得到不同的變換效果4) 在線性灰度變換中,有一種特殊的變換,叫做圖像反色。通過圖像反色變換,每一個像素點的變換前后的灰度值之和為白色(255)。圖像反色的變換公式為 (3)當L取為256時,實現(xiàn)圖像反轉變色2、非線性灰度變換除了圖像灰度的線性變換外,還有非線性灰度變換。非線性灰度變換不是

5、對圖像的所有灰度值進行拉伸,一部分被拉伸,另一部分則會被壓縮。非線性灰度變換在整個灰度值范圍內(nèi)采用統(tǒng)一的變換函數(shù)。比較常見的有對數(shù)變換和冪律(伽馬)變換等。1) 對數(shù)變換設原圖像為f(x,y),變換后的圖像為g(x,y),對數(shù)變換的變換函數(shù)為 (4)(4) 式中,c是一個比例因子,log是求以e為底的數(shù)值的對數(shù),原圖像灰度值加1的目的是保證對數(shù)變化對于任何灰度值都有意義。c取適當?shù)闹担傻玫綄?shù)變換的函數(shù)圖像如圖2所示。圖2 對數(shù)變換函數(shù)曲線由圖2可知,通過對數(shù)變換,對于較低的灰度值起到較大程度的拉伸作用,而對于較高的灰度值起到壓縮作用,從而將整幅圖像的灰度值均勻化。2) 冪律(伽馬)變換伽馬

6、變換可通過調(diào)節(jié)冪指數(shù)參數(shù)來改變其變換特性,設f(x,y)和g(x,y)分別為變換前后的圖像,為冪指數(shù),c為比例系數(shù),則伽馬變換的公式如下 (5)對于c為正值的情況,當>1時,伽馬變換將低灰度值壓縮,高灰度值拉伸;當<1時,伽馬變換將低灰度值拉伸,高灰度值壓縮,類似對數(shù)變換;當=1時,等同于對原圖像進行線性變換。伽馬變換的曲線圖如圖3所示圖3 不同下的伽馬變換曲線圖(2) 直方圖處理1、直方圖的兩種定義直方圖是反映一幅圖像中的灰度級與出現(xiàn)這種灰度級的次數(shù)或概率之間的關系的統(tǒng)計圖表。直方圖有兩種定義,分別如下。1)定義1:一幅灰度級范圍在0,L-1的數(shù)組圖像的直方圖定義為以下離散函數(shù):

7、 (6)其中rk是第k個灰度級,nk是圖像中灰度級為rk的像素個數(shù),k=0,1,2.L-1。2)定義2:一幅灰度級范圍0,L-1的數(shù)組圖像的直方圖定義為以下離散函數(shù): (7)其中rk和nk的意義同定義1,n是指圖像的像素總數(shù)。此處,直方圖便是圖像中不同灰度級像素出現(xiàn)的概率。通過觀察一幅圖像的直方圖可以判斷這幅圖像的對比度和清晰度,也可以掌握圖像的明暗程度。但是直方圖只能反映灰度值出現(xiàn)的概率,并不能反映各個灰度值在空間的分布情況。2、直方圖的均衡化直方圖的均衡化是將原圖像的直方圖通過變換函數(shù)修正為均勻的直方圖,然后按照均衡后的直方圖修正原圖像。圖像均衡化后,理論上,圖像的直方圖完全平直,即各個灰

8、度級具有近似相同的出現(xiàn)頻率。直方圖均衡化的作用就是實現(xiàn)了灰度級的均勻分布,增加了圖像的對比度,使得圖像看起來更清晰。直方圖均衡化的原理和方法如下。設r和s分別表示歸一化了的原圖像灰度和經(jīng)直方圖修正后的圖像灰度。在0,1區(qū)間內(nèi),對任意一個灰度級r,可通過一種對應法則對應到灰度級s,設這種對應法則為T,則 (8)為了使變換后的灰度仍保持從暗到亮的單一變化順序,且變換范圍與變換前保持一致,以避免整體變量或變暗,一般規(guī)定:正變換,在0r1中,T(r)為單調(diào)遞增函數(shù),且0T(r)1;反變換,r=T-1(s),T-1(s)也為單調(diào)遞增函數(shù),即0s1??紤]到灰度變換不影響像素的位置分布且不增減像素數(shù)目,所以

9、有 (9)而實際圖像是有許多離散的像素點和離散的灰度級構成的,對于離散的情況,均衡化后的效果將受到一定限制,不一定絕對平整。離散情況下的均衡化方法如下。設一幅圖像的像素總數(shù)為n,分為L個灰度級。若nk為第k個灰度級出現(xiàn)的頻數(shù),則第k個灰度級出現(xiàn)的概率為p(rk)=nk/n,其中,0rk1,k=0,1,2,.,L-1。變換后的灰度為 (10)可以看出,離散情況下的直方圖均衡化是將連續(xù)的積分轉化為離散的疊加求和,可近似得到直方圖平直的效果。三 實驗器材PC,MATLAB軟件(各版本),若干幅圖像四 實驗步驟(一)數(shù)字圖像的灰度變換1、線性灰度變換1)在MATLAB中用imread函數(shù)讀取原圖像,將

10、其賦值給某個矩陣,如I1,進而用imshow函數(shù)顯示。2)檢測圖像的通道數(shù)目,即檢測矩陣的高度,若超過了1個通道,將矩陣灰度化,變?yōu)閱瓮ǖ赖幕叶葓D。3)將矩陣中所有的8位整形元素轉換為double型,便于計算的更精確,特別是進行除法運算的時候。4)用max函數(shù)和min函數(shù)得到原圖像中灰度的最大值和最小值。5)預分配一個內(nèi)存給矩陣I2,對矩陣中的每一個元素進行循環(huán)檢測,并將每一個元素的灰度值帶入線性灰度變換公式,即公式(1),其中,令d=250,c=10。將每一個變換后的像素灰度存入矩陣I2的相應元素位置上。6)將變換后的矩陣轉換為8位整形,并將其顯示出來,以另一個文件名的形式保存。7)繪制變換

11、前后兩幅圖像的灰度直方圖,將其與相應的圖像一起,用一張圖展示出來。8)繪制函數(shù)曲線。具體實驗的流程圖如圖4所示。圖4 線性灰度變換實驗流程圖2、非線性灰度變換1)在MATLAB中用imread函數(shù)讀取原圖像,將其賦值給某個矩陣,如I1,進而用imshow函數(shù)顯示。2)檢測圖像的通道數(shù)目,即檢測矩陣的高度,若超過了1個通道,將矩陣灰度化,變?yōu)閱瓮ǖ赖幕叶葓D。3)將矩陣中所有的8位整形元素轉換為double型,便于計算的更精確,特別是進行求對數(shù)運算的時候。5)預分配內(nèi)存給矩陣I2,I3,用于存放對數(shù)變換和伽馬變換后的圖像灰度值。4)對數(shù)變換:取比例系數(shù)c=5,對原圖像的每一個像素進行循環(huán)檢測,并將

12、其灰度值代入公式(4)進行對數(shù)變換,將變換后的灰度值存在矩陣I2的相應元素位置上。5)對圖像進行顯示,由于經(jīng)過對數(shù)變換后,所有的灰度值均處于較低水平,直接顯示將導致圖像過暗不便觀察。所以,采用MATLAB內(nèi)部的拉伸方式將圖像顯示,函數(shù)為imshow(I2,)。6)伽馬變換:合理設置比例系數(shù)和指數(shù),以免變換后的灰度值超過255。取比例系數(shù)c=1/255,指數(shù)=2,對原圖像的每一個像素進行循環(huán)檢測,并將其灰度值代入公式(5)進行伽馬變換,將變換后的灰度值存在矩陣I3的相應元素位置上。7)對圖像進行顯示,也采用MATLAB內(nèi)部的拉伸方式將圖像顯示,函數(shù)為imshow(I3,)。8)利用plot函數(shù)和

13、hold on命令將對數(shù)變換和伽馬變換的函數(shù)曲線繪制在同一幅坐標圖上。對數(shù)變換和伽馬變換的實驗流程圖如圖5所示。圖5 非線性灰度變換流程圖說明:本實驗將對數(shù)變換和冪律(伽馬)變換均做了練習。(二)直方圖處理1)在MATLAB中用imread函數(shù)讀取原圖像,將其賦值給某個矩陣,如I1,進而用imshow函數(shù)顯示。2)檢測圖像的通道數(shù)目,即檢測矩陣的高度,若超過了1個通道,將矩陣灰度化,變?yōu)閱瓮ǖ赖幕叶葓D。3)統(tǒng)計矩陣的行列數(shù)。4)利用統(tǒng)計帶有某個灰度的像素的數(shù)目繪制直方圖。在MATLAB中,對灰度級0-255依次尋找,可用find函數(shù)找到帶有相應灰度的像素的位置,再用length函數(shù)求出這些位置

14、的數(shù)目,即像素的個數(shù),結合bar函數(shù)或stem函數(shù)繪制原圖像的灰度直方圖;將各灰度的像素個數(shù)除以總像素數(shù),得到第二種定義下的灰度直方圖,即灰度出現(xiàn)概率,繪制。5)對第二種定義下的灰度直方圖進行操作。從灰度為0開始,對于該灰度出現(xiàn)的概率,與之前的灰度概率總和進行疊加,直到255,總和為1。6)用255與每一個灰度所在的概率和相乘,再四舍五入,將不同的概率歸并為同一概率。7)對照該對應法則,將原圖中相應位置的灰度進行替換,圖像得到均衡化,對比度得到提高,將圖像顯示出來。8)再利用之前的方法,繪制均衡化后的灰度直方圖,分析結果找到規(guī)律。直方圖均衡化的流程圖如圖6所示。圖6 直方圖均衡化流程圖五 實驗

15、結果及分析(一)數(shù)字圖像的灰度變換1、線性灰度變換實驗結果:1)將原圖片和線性變換后的圖片以及其灰度直方圖繪制在同一張圖片上,得到如圖7所示結果。圖7 線性灰度變換前后的圖像和灰度直方圖由實驗結果可知,原圖片的灰度值情況如下:最小灰度為49,最大灰度為181,較多出現(xiàn)的灰度值主要集中在120到160之間。實驗中,我們規(guī)定,變換后的圖像的最低灰度值為10,最高灰度值為250,實現(xiàn)線性灰度變換,得到圖7中的結果。2)繪制本實驗中的線性灰度變換函數(shù)曲線。本實驗中線性灰度變換的函數(shù)曲線如圖8所示。圖8 線性灰度變換的曲線圖由圖8知,當灰度小于等于49時,變換后的灰度值等于10;當灰度值大于等于181時

16、,變換后的灰度值等于250;當灰度值介于49和181之間時,變換后的灰度值通過線性變換函數(shù)與原灰度值一一對應。結果分析:線性灰度變化將原圖像的每一個灰度進行了線性變換,拉伸(或壓縮了)原圖像的灰度范圍,但是不改變具有各灰度值的像素的數(shù)量,不改變灰度的分布,即不改變灰度直方圖的形狀。本實驗中,將灰度范圍做了線性的拉伸變換從而擴大了灰度范圍,故原圖像的最高灰度值增大,最低灰度值減小,從而實現(xiàn)了圖像對比度的增大。2、 非線性灰度變換實驗結果:輸入原圖像,并將原圖像顯示出來,得到結果如圖9所示。圖9 原始圖像由圖9可得,原圖像是一個具有高、低灰度值的圖像。令比例系數(shù)c=5,對原圖像進行對數(shù)變換,并用M

17、ATLAB內(nèi)部方法對圖像的灰度范圍進行拉伸,即imshow(,),得到如圖10所示的圖像。圖10 通過對數(shù)變換并拉伸后顯示的圖像結果分析:從圖10中得知,人物部分的像素灰度值變得近似相等,背景部分的像素灰度仍保持較低水平。這是由灰度變換的特性決定的,灰度變換可將高灰度值部分有效地壓縮,低灰度部分有效地拉伸,使得整幅圖像的灰度保持在十分接近的水平。對原圖進行伽馬變換,令指數(shù)=2,令比例系數(shù)c=1/255,這是為了保證經(jīng)過伽馬變換后,原圖的灰度值的最大值不會超過255的充分條件。經(jīng)過伽馬變換后,得到如圖11所示結果。圖11 通過伽馬變換并拉伸后顯示的圖像結果分析:由圖11可以看出,原圖中人物較暗的

18、部分變得更暗,相比之下,原本亮的地方,變得相對更亮,但與原圖比稍顯暗,這是由比例系數(shù)的設定所致。如果考慮原圖經(jīng)過斜率為1的線性變化后仍為原圖,而伽馬變換在0至255范圍內(nèi)的整個函數(shù)曲線均在y=x之下,所以灰度值不會比原圖高,但自身的高低灰度級間相對差值變大。將本實驗中對數(shù)變換和伽馬變換的曲線繪制在同一幅坐標圖中,得到如圖12所示的結果。圖12 對數(shù)變換和伽馬變換的函數(shù)曲線圖結果分析:從圖12中可以看出,對數(shù)變換的曲線整體處于較低水平,若要將其調(diào)高,可通過調(diào)整比例系數(shù)c,或在顯示時再次進行一定的拉伸,如線性灰度變換;為防止伽馬變換后的灰度值超過255,其比例系數(shù)的設定也必須要合理。(2) 直方圖

19、處理實驗結果:讀取原圖像,并顯示,得到結果如圖13。圖13 原始圖像由圖13知,原圖像是一幅對比度較低,高低灰度不明顯的圖像。通過自己編程(拒絕imhist函數(shù))從灰度值為0開始,對每一個灰度擁有的像素數(shù)目進行統(tǒng)計,其中自變量為灰度,因變量為該灰度出現(xiàn)的次數(shù)或頻率,繪制出兩種定義下的灰度直方圖如圖14所示。圖14 原始圖像在兩種定義下的直方圖(自己編程)結果分析:從圖14中得到,原圖像的灰度值主要分布在80到150之間的很集中的范圍內(nèi),最高灰度值與最低灰度值差距不大,造成了原圖像的對比度偏低。如果能將這部分主要集中的灰度均衡化,均勻地分布在0到255之間,對改善圖片對比度有較大幫助。通過離散情

20、況下的直方圖均衡化的原理和方法,將原圖進行均衡化,得到結果如圖15所示。圖15 均衡化后的圖像(自己編程)結果分析:在圖15中,圖像的對比度得到明顯的改善,亮的地方灰度值更高,暗的地方灰度值更低,且沒有出現(xiàn)雜亂無章的現(xiàn)象。將均勻化后的灰度直方圖繪制,得到如圖16所示的直方圖。圖16 均衡化后的兩種定義下的直方圖(自己編程)結果分析:從圖16可以得出,直方圖明顯得到均衡化,分布在0到255整個空間中,且沒有出現(xiàn)某個區(qū)域過于集中的情況。但由于離散情況的限制,直方圖不能絕對地均勻平緩,只能得到近似的均衡化。6. 實驗心得體會和建議基于MATLAB光電圖像處理實驗鞏固了我們在課上學的圖像處理原理和方法

21、,鍛煉了我們的邏輯思維能力和動手能力。在實驗過程中尤其應當注意矩陣的尺寸、矩陣元素的數(shù)據(jù)類型和矩陣的非線性運算操作如乘除。當對于每一個元素操作時可采用循環(huán)語句逐一操作。為了運算更精確,建議將矩陣的數(shù)據(jù)類型改為double型,根據(jù)需要,在顯示時轉換回8位整形。下一步,應當在算法優(yōu)化的角度多做練習,使得算法更加簡捷準確。七.程序源代碼(一)數(shù)字圖像的灰度變換1、線性灰度變換% 圖片的線性灰度變換clear,clcI1=imread('huitu.jpg'); %讀取圖片文件huitu.jpg,賦值給矩陣I1%圖片的提取路徑需在MATLAB命令窗口設置好subplot(2,2,1),

22、imshow(I1); %在一張2×2圖的第1個位置顯示I1title('原圖片');if size(I1,3)>1 I1=rgb2gray(I1); %滿足條件,將看似為黑白圖的多通道圖轉化為灰度圖endI1=double(I1); %將圖片灰度的數(shù)據(jù)類型轉變?yōu)閐ouble型%這一部轉化很重要,在后續(xù)的計算中,尤其是除法,運算結果能保證更高的精度lo,wi=size(I1); %獲得矩陣I1的行列尺寸,以備單個像素處理時的循環(huán)算法a=min(min(I1); %得到原圖(I1)所有像素灰度的最小值b=max(max(I1); %得到原圖(I1)所有像素灰度的最

23、小值I2=zeros(lo,wi); %初始化矩陣I2,為處理后的圖像分配內(nèi)存c=10;d=250; %設置灰度線性拉伸后的灰度最小值和最大值%接下來,對矩陣I1中的逐個像素進行線性灰度變換,并存到I2相應位置for i=1:lo for j=1:wi I2(i,j)=(d-c)/(b-a)*(I1(i,j)-a)+c; %線性灰度變換公式 endendI1=mat2gray(I1);I2=mat2gray(I2); %將變換后的矩陣I1、I2轉換為8位整型subplot(2,2,2),imshow(I2); %在一張2×2圖的第2個位置顯示I2title('線性灰度變換后的

24、圖片');imwrite(I2,'線性灰度變換后的圖片.bmp','bmp') %以另一個文件名形式保存圖像subplot(2,2,3),imhist(I1); %在一張2×2圖的第3個位置顯示I1的灰度直方圖ylim(0,7000),title('原圖片灰度直方圖');subplot(2,2,4),imhist(I2); %在一張2×2圖的第4個位置顯示I2的灰度直方圖ylim(0,7000),title('變換后圖片灰度直方圖');% 畫灰度變換曲線x=0:255; %設置0到255共256級灰度級

25、y=zeros(1,256); %設置全0向量,為線性灰度變換后的數(shù)值分配內(nèi)存%按灰度級,從0到255開始循環(huán),即x(1)到x(256)for i=1:256 if x(i)<a y(i)=c; %當原圖灰度值小于a,變換后灰度恒為c end if x(i)>=a&&x(i)<=b y(i)=(d-c)/(b-a)*(x(i)-a)+c; %當原圖灰度介于a,b之間,用公式變換 end if x(i)>b y(i)=d; %當原圖灰度介于a,b之間,用公式變換 endendfigure,plot(x,y) %創(chuàng)建新的圖片窗口,顯示變換函數(shù)曲線title(

26、'線性變換曲線圖'),xlim(0,255),ylim(0,255)ylim(0,255); %限定橫坐標范圍為0到2552、 非線性灰度變換% 對圖像做非線性變換clear,clcI1=imread('Ein.jpg'); %讀取圖像文件Ein.jpg,賦值給矩陣I1figure,imshow(I1); %創(chuàng)建一個圖像顯示窗口并顯示圖像title('原圖像')if size(I1,3)>1 I1=rgb2gray(I1); %滿足條件,將三通道的圖片變?yōu)榛叶葓DendI1=double(I1); %將圖片的數(shù)據(jù)類型轉變?yōu)閐ouble型,以便

27、后續(xù)計算準確lo,wi=size(I1); %得到矩陣I1的行數(shù)和列數(shù),即像素個數(shù)I2=zeros(lo,wi);I3=zeros(lo,wi); %創(chuàng)建兩個全零矩陣用于存放對數(shù)和伽馬變換后的矩陣% 對圖像做對數(shù)變換c=5;d=1/255; %令對數(shù)變換中的比例系數(shù)為5,伽馬變換中的比例系數(shù)為1/255%對每一個像素的灰度值,用循環(huán)分別進行變換for i=1:lo for j=1:wi I2(i,j)=c*log(1+I1(i,j); %對數(shù)變換公式 endendI2=mat2gray(I2); %必須將double型的矩陣還原為8位整型才能顯示figure,imshow(I2,) %顯示時由

28、于灰度太低,需要MATLAB的內(nèi)部方式進行拉伸title('通過對數(shù)變換后的圖像')imwrite(I2,'通過對數(shù)變換后的圖像.bmp','bmp') %保存成一個新的文件% 對圖像做伽馬變換for i=1:lo for j=1:wi I3(i,j)=d*I1(i,j)2; %伽馬變換公式,指數(shù)為2 endendI3=mat2gray(I3); %還原為整型figure,imshow(I3,) %創(chuàng)建圖像窗口,也要伸展顯示title('通過伽馬變換后的圖像')imwrite(I3,'通過伽馬變換后的圖像.bmp'

29、,'bmp') %保存成一個新文件% 顯示對數(shù)變換和伽馬變換的函數(shù)曲線x=0:255;y1=zeros(1,256);y2=zeros(1,256); %規(guī)定x坐標,并且為非線性變換后的數(shù)值分配內(nèi)存%對每一個灰度級進行相應的變換for i=1:256 y1(i)=c*log(1+x(i); y2(i)=d*x(i)2;endfigureplot(x,y1),hold on %在同一幅坐標圖上繪制兩個變換函數(shù)plot(x,y2)xlim(0,255),ylim(0,255) %創(chuàng)建新窗口,顯示title('對數(shù),伽馬變換曲線圖')(2) 直方圖處理% 讀取原圖像,

30、并繪制原圖像在兩種定義下的直方圖I1=imread('youngboy.jpg'); %讀取圖像文件youngboy.jpg并賦值給I1figure,imshow(I1) %創(chuàng)建一個圖像窗口,顯示圖像youngboy.jpgtitle('原圖')if size(I1,3)>1 I1=rgb2gray(I1); %滿足條件時將彩圖灰度化endlo,wi=size(I1); %獲取圖像矩陣的長和寬greylevel=0:255; %創(chuàng)建存儲灰度級的向量hi=zeros(1,256); %為各灰度級的像素數(shù)目分配內(nèi)存p=zeros(1,256);%為各灰度級的像

31、素出現(xiàn)的頻率分配內(nèi)存for i=1:256hi(i)=length(find(I1=greylevel(i); %尋找等于第i個灰度級的像素并統(tǒng)計個數(shù)p(i)=hi(i)/(lo*wi*1.0); %統(tǒng)計上式結果出現(xiàn)的頻率,其中分母出現(xiàn)1.0是為了采用double型進行操作end%創(chuàng)建一個圖像窗口,同時顯示兩種頂一下的直方圖,灰度級為橫坐標,hi和p為縱坐標figuresubplot(2,1,1),stem(greylevel,hi)xlim(0,255)title('原圖灰度級出現(xiàn)的次數(shù)直方圖')subplot(2,1,2),stem(greylevel,p)xlim(0,2

32、55)title('原圖灰度級出現(xiàn)的頻率直方圖')% 直方圖的均衡化s=zeros(1,256);s(1)=p(1);for i=2:256 s(i)=p(i)+s(i-1); %對于每一個灰度級出現(xiàn)的概率,進行累加操作endH=round(255*s); %用255與求和結果相乘,并四舍五入,將相似的灰度級歸為一起I2=zeros(lo,wi); %為均衡化的圖像分配內(nèi)存%對新圖的每一個像素的灰度級進行操作for i=1:lo for j=1:wi I2(i,j)=H(I1(i,j)+1); %均衡化后的圖像的第(i,j)個像素等于原圖該像素對應的灰度值被映射后得到的新灰度 endendfigure,imshow(mat2gray(I2); %顯示均衡化后的圖像,必須取整型title('直方圖均衡化后的圖像')% 繪制均衡化后的圖像的直方圖for i=1:256 hi2(i)=length(find(I2=greylevel(i); p2(i)=hi2(i)/(lo*wi*1.0);end%在同一幅圖中顯示兩個直方圖figuresubplot(2,1,1),bar(greylevel,hi2)xlim(0,255)title('均衡后圖像灰度級出現(xiàn)次數(shù)直方圖')subplot(2,1,2

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論