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

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

23、小值I2=zeros(lo,wi); %初始化矩陣I2,為處理后的圖像分配內(nèi)存c=10;d=250; %設(shè)置灰度線性拉伸后的灰度最小值和最大值%接下來,對矩陣I1中的逐個(gè)像素進(jìn)行線性灰度變換,并存到I2相應(yīng)位置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轉(zhuǎn)換為8位整型subplot(2,2,2),imshow(I2); %在一張2×2圖的第2個(gè)位置顯示I2title('線性灰度變換后的

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

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

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

27、后續(xù)計(jì)算準(zhǔn)確lo,wi=size(I1); %得到矩陣I1的行數(shù)和列數(shù),即像素個(gè)數(shù)I2=zeros(lo,wi);I3=zeros(lo,wi); %創(chuàng)建兩個(gè)全零矩陣用于存放對數(shù)和伽馬變換后的矩陣% 對圖像做對數(shù)變換c=5;d=1/255; %令對數(shù)變換中的比例系數(shù)為5,伽馬變換中的比例系數(shù)為1/255%對每一個(gè)像素的灰度值,用循環(huán)分別進(jì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,) %顯示時(shí)由

28、于灰度太低,需要MATLAB的內(nèi)部方式進(jìn)行拉伸title('通過對數(shù)變換后的圖像')imwrite(I2,'通過對數(shù)變換后的圖像.bmp','bmp') %保存成一個(gè)新的文件% 對圖像做伽馬變換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') %保存成一個(gè)新文件% 顯示對數(shù)變換和伽馬變換的函數(shù)曲線x=0:255;y1=zeros(1,256);y2=zeros(1,256); %規(guī)定x坐標(biāo),并且為非線性變換后的數(shù)值分配內(nèi)存%對每一個(gè)灰度級(jí)進(jìn)行相應(yīng)的變換for i=1:256 y1(i)=c*log(1+x(i); y2(i)=d*x(i)2;endfigureplot(x,y1),hold on %在同一幅坐標(biāo)圖上繪制兩個(gè)變換函數(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)建一個(gè)圖像窗口,顯示圖像youngboy.jpgtitle('原圖')if size(I1,3)>1 I1=rgb2gray(I1); %滿足條件時(shí)將彩圖灰度化endlo,wi=size(I1); %獲取圖像矩陣的長和寬greylevel=0:255; %創(chuàng)建存儲(chǔ)灰度級(jí)的向量hi=zeros(1,256); %為各灰度級(jí)的像素?cái)?shù)目分配內(nèi)存p=zeros(1,256);%為各灰度級(jí)的像

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

32、55)title('原圖灰度級(jí)出現(xiàn)的頻率直方圖')% 直方圖的均衡化s=zeros(1,256);s(1)=p(1);for i=2:256 s(i)=p(i)+s(i-1); %對于每一個(gè)灰度級(jí)出現(xiàn)的概率,進(jìn)行累加操作endH=round(255*s); %用255與求和結(jié)果相乘,并四舍五入,將相似的灰度級(jí)歸為一起I2=zeros(lo,wi); %為均衡化的圖像分配內(nèi)存%對新圖的每一個(gè)像素的灰度級(jí)進(jìn)行操作for i=1:lo for j=1:wi I2(i,j)=H(I1(i,j)+1); %均衡化后的圖像的第(i,j)個(gè)像素等于原圖該像素對應(yīng)的灰度值被映射后得到的新灰度 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%在同一幅圖中顯示兩個(gè)直方圖figuresubplot(2,1,1),bar(greylevel,hi2)xlim(0,255)title('均衡后圖像灰度級(jí)出現(xiàn)次數(shù)直方圖')subplot(2,1,2

溫馨提示

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

最新文檔

評論

0/150

提交評論