Matlab圖像處理課程設(shè)計(jì)報(bào)告.doc_第1頁
Matlab圖像處理課程設(shè)計(jì)報(bào)告.doc_第2頁
Matlab圖像處理課程設(shè)計(jì)報(bào)告.doc_第3頁
Matlab圖像處理課程設(shè)計(jì)報(bào)告.doc_第4頁
Matlab圖像處理課程設(shè)計(jì)報(bào)告.doc_第5頁
已閱讀5頁,還剩47頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

基于matlab的圖像處理制作自己的photoshop 課程設(shè)計(jì)學(xué)生姓名: 學(xué) 號(hào): 專業(yè)班級(jí): 指導(dǎo)教師: 二一 年 四 月 十三 日 目錄一、 課程設(shè)計(jì)目的.3二、 課程設(shè)計(jì)描述.3三、 課程設(shè)計(jì)要求.3四、 總體設(shè)計(jì).3五、 按鈕功能.45.1、scan(瀏覽) . .65.2、back(上一張) . .65.3、next(下一張) . .75.4、mark(添加水印) . .75.5、magnify(以鼠標(biāo)點(diǎn)擊為中心放大) .75.6、r90cw(順時(shí)針旋轉(zhuǎn)90度) .85.7、r90ccw(逆時(shí)針旋轉(zhuǎn)90度) . 85.8、exit(退出) . . .8六、 菜單功能.86.1、文件. .86.1.1、打開.96.1.2、保存.96.1.3、退出.96.2、編輯. .96.2.1、放大.96.2.2、縮小.106.2.3、灰度.106.2.4、亮度.116.2.5、旋轉(zhuǎn).126.2.6、截圖.136.3、變換.136.3.1、傅里葉變換.136.3.2、離散余弦變換.146.3.3、radom變換.146.4、噪聲. .156.4.1、高斯噪聲.156.4.2、椒鹽噪聲.156.4.3、斑點(diǎn)噪聲.166.4.4、泊松噪聲.166.5、濾波.166.5.1、高通濾波.176.5.2、低通濾波.176.5.3、平滑濾波(線性).176.5.4、平滑濾波(非線性).186.5.5、銳化濾波(線性).186.5.6、銳化濾波(非線性).196.6、直方圖統(tǒng)計(jì) . 196.6.1、r直方圖.206.6.2、g直方圖.206.6.3、b直方圖.216.7、圖像增強(qiáng) . .216.7.1、偽彩色增強(qiáng) .216.7.2、真彩色增強(qiáng) . . . .226.7.3、直方圖均衡 . . . .226.7.4、ntsc顏色模型 .236.7.5、ycbcr顏色模型 .236.7.6、hsv顏色模型 . . . .246.8、閾值分割 . . . 24七、 程序調(diào)試及問題分析.26八、 心得體會(huì).28九、 參考文獻(xiàn).29十、 附錄.29一、 課程設(shè)計(jì)目的綜合運(yùn)用matlab工具箱實(shí)現(xiàn)圖像處理的gui程序設(shè)計(jì)。二、 課程設(shè)計(jì)描述 學(xué)習(xí)matlab gui程序設(shè)計(jì),利用matlab圖像處理工具箱,設(shè)計(jì)和實(shí)現(xiàn)自己的photoshop 。要求:按照軟件工程方法,根據(jù)需求進(jìn)行程序的功能分析和界面設(shè)計(jì),給出設(shè)計(jì)詳細(xì)說明。然后按照自己擬定的功能要求進(jìn)行程序設(shè)計(jì)和調(diào)試。 以下列出幾點(diǎn)程序的功能,供參考1)圖像的讀取和保存。2)設(shè)計(jì)圖形用戶界面,讓用戶能夠?qū)D像進(jìn)行任意的亮度和對(duì)比度變化調(diào)整,顯示和對(duì)比變換前后的圖像。3)設(shè)計(jì)圖形用戶界面,讓用戶能夠用鼠標(biāo)選取圖像感興趣區(qū)域,顯示和保存該選擇區(qū)域。4)編寫程序通過最近鄰插值和雙線性插值等算法將用戶所選取的圖像區(qū)域進(jìn)行放大和縮小整數(shù)倍的操作,并保存,比較幾種插值的效果。5)圖像直方圖統(tǒng)計(jì)和直方圖均衡,要求顯示直方圖統(tǒng)計(jì),比較直方圖均衡后的效果。6)能對(duì)圖像加入各種噪聲,并通過幾種濾波算法實(shí)現(xiàn)去噪并顯示結(jié)果。比較去噪效果。三、 課程設(shè)計(jì)要求1)熟悉和掌握matlab 程序設(shè)計(jì)方法2)掌握matlab gui 程序設(shè)計(jì)3)學(xué)習(xí)和熟悉matlab圖像處理工具箱4)學(xué)會(huì)運(yùn)用matlab工具箱對(duì)圖像進(jìn)行處理和分析四、 總體設(shè)計(jì)這次的設(shè)計(jì)的功能按鈕包括菜單和面板的按鈕兩部分,面板上的按鈕功能和菜單上的“閾值分割”功能是相對(duì)比較有新意的,這幾個(gè)功能基本都是自己編寫的源程序,并沒有現(xiàn)成的功能函數(shù)貢直接調(diào)用,算是花了不少功夫吧。然后菜單上的功能都是圖像處理必備的一些基本功能,大多可以通過matlab自帶的一些現(xiàn)成函數(shù)來調(diào)用以實(shí)現(xiàn),關(guān)鍵是要注意它的使用語法和支持的圖像類型。注:整個(gè)設(shè)計(jì)都是基于matlab 6.5版本。對(duì)于一些需要?jiǎng)討B(tài)演示的,無法貼圖,在附件里有演示視頻具體的菜單功能和面板設(shè)計(jì)如下圖所示: 五、 按鈕功能5.1、scan(瀏覽)為了能讓圖像處理人員實(shí)現(xiàn)預(yù)覽將要處理的圖像,設(shè)計(jì)了這個(gè)功能。該功能實(shí)現(xiàn)的主要思想是,先獲取圖片所在文件夾的路徑,然后列出文件夾的文件內(nèi)容,最后通過一個(gè)循環(huán)來讀取每一張圖片,需要用到的一些函數(shù)如下:directoryname = uigetdir(, pick up files); %獲得文件夾路徑,得到一個(gè)字符數(shù)組files = dir(directoryname);%列出文件夾里的內(nèi)容,包含(name date bytes isdir)directoryname1 = strcat(directoryname,);%字符連接max = size(files,1);%得到總共文件數(shù)pause(0.8);%暫停在設(shè)計(jì)過程中有碰到一個(gè)問題,對(duì)于d1 = files(i).name;當(dāng)i為1,2時(shí)得到不是圖片的文件名,所以說循環(huán)時(shí)要從3開始。 d1 = files(1).named1 =. d1 = files(2).named1 =.在按鈕調(diào)試的過程中,后來又發(fā)現(xiàn)了一個(gè)問題,但文件夾中包含其它非圖片格式的文件時(shí)會(huì)出錯(cuò),讀取的文件路徑無法顯示,因?yàn)樗母袷讲皇呛戏▓D片格式。為了解決這個(gè)問題,我就通過獲取每個(gè)文件的格式,然后判斷它的格式是否為圖片,是則顯示,不是則跳過,這樣以來就循環(huán)次數(shù)也可以從1開始了。具體需要用到的函數(shù)如下:a = jpg, png, bmp, jpeg, tif;%合法的圖片類型d2 = strfind(d1, .);%獲取.在字符串中的位置,因?yàn)?之后為文件類型if any(ismember(a, d1(d2+1:end);%判斷文件類型是否合法5.2、back(上一張)在瀏覽完圖片以后,為了可以選擇喜歡處理的圖片而無需每次的打開圖片,設(shè)計(jì)了上一張和下一張功能。該功能實(shí)現(xiàn)的主要思想是,先獲取已經(jīng)顯示圖片的路徑,然后從第一張圖片的路徑開始與正在顯示的圖片路徑做比較,當(dāng)二者相同時(shí),記下i,然后執(zhí)行i=i-1,得到上一張圖片路徑,最后顯示出來。具體實(shí)現(xiàn)的關(guān)鍵語句如下:for i=3:max d1 = files(i).name; d2 = strcat(directoryname1,d1); %文件夾內(nèi)每張圖片路徑 if strcmp(d2,str) i=i-1;break; %與正在顯示的圖片路徑做比較,看是否相同 else end end 當(dāng)顯示第一張圖片時(shí),再執(zhí)行上一張,提示:這是第一張圖片。if i=2 msgbox(this is the first img);5.3、next(下一張) 下一站和上一張思路一樣,只是在得到顯示圖片路徑以后,執(zhí)行i=i+1。另外我還加了一個(gè)功能,就是當(dāng)現(xiàn)實(shí)到最后一張圖片是,如果再下一張就提示:這是最后一張圖片。if i=max+1 msgbox(this is the last img); 5.4、mark(添加水印)為了給自己處理過的圖像添加標(biāo)志,設(shè)計(jì)了添加水印的功能。該功能的主要思想是,圖像即為數(shù)組,如果要再圖像上添加水印,也就是用另一幅圖像的數(shù)據(jù)去覆蓋原圖像對(duì)應(yīng)部分的數(shù)據(jù),也就是對(duì)數(shù)組內(nèi)容的替換。然后就是關(guān)于水印添加的方位了,由于添加方位的不同,所要替代的范圍的不同了?;谶@種思想,我的設(shè)計(jì)如下:a(1:n2,1:m2)=b; %左上角 a(1:n2,(m1-m2+1):m1)=b; %右上角a(n1-n2+1):n1,1:m2)=b; %左下角a(n1-n2+1):n1,(m1-m2+1):m1)=b; %右下角其中a為原圖的讀入矩陣,b為待添加的水印的圖像矩陣,在替代過程中我們要確保,a矩陣比b矩陣大,更重要的是a中將要替代的部分要和b的大小相同。在編寫程序過程中,發(fā)現(xiàn)了一個(gè)缺陷,我們可以為彩色圖像添加彩色水印,為灰度圖像添加灰度水印,但是當(dāng)兩個(gè)類型不一樣時(shí)就會(huì)出錯(cuò),所以如果兩張圖的類型不一致,在添加之前就要類型轉(zhuǎn)化。isrgb(a);isrgb(a);%判斷a,b圖像的類型我還發(fā)現(xiàn)其實(shí)還有可改進(jìn)的地方,前面我們添加水印的方法是完全替代,如果我們同時(shí)保留兩部分的數(shù)據(jù),就可以添加近似透明的水印,后來再查閱相關(guān)函數(shù)時(shí)發(fā)現(xiàn),imadd可以實(shí)現(xiàn)矩陣相加的功能,后來嘗試了下,效果一般,應(yīng)該還有其它更好的方法,還有待研究。5.5、magnify(以鼠標(biāo)點(diǎn)擊為中心放大)當(dāng)在做截圖功能的時(shí)候,我突然想到,既然截圖可以自由選擇要放大的范圍,那么多次的截圖就可以實(shí)現(xiàn)對(duì)某部分不斷地放大,所以想到了基于截圖的以鼠標(biāo)點(diǎn)擊為中心放大的功能。但首先要實(shí)現(xiàn)獲得鼠標(biāo)點(diǎn)擊坐標(biāo)的功能,在查閱過程中發(fā)現(xiàn)了x,y=ginput(1);以十字坐標(biāo)形式,當(dāng)鼠標(biāo)左鍵點(diǎn)擊下,返回點(diǎn)擊點(diǎn)的x,y坐標(biāo)。然后就是要實(shí)現(xiàn)以點(diǎn)擊一定范圍放大,也就是每次實(shí)現(xiàn)以鼠標(biāo)點(diǎn)擊點(diǎn)位中心的正方形大小截圖,通過一個(gè)循環(huán)多次截圖就可以實(shí)現(xiàn)這個(gè)功能了。具體設(shè)計(jì)的函數(shù)如下:for n=1:3 %循環(huán)次數(shù)x,y=ginput(1); %獲得點(diǎn)擊點(diǎn)坐標(biāo)z=imcrop(z1,x-400/n,y-400/n,800/n,800/n); %每次以一定大小截圖imshow(z); z1=z;%為下一次截圖的源數(shù)據(jù)end這個(gè)設(shè)計(jì)有點(diǎn)不足,就是每次都要點(diǎn)擊要放大中心點(diǎn),而且一定要執(zhí)行三次,如果想要提前結(jié)束只能按下回車鍵。5.6、r90cw(順時(shí)針旋轉(zhuǎn)90度)當(dāng)初在設(shè)計(jì)順,逆時(shí)針旋轉(zhuǎn)90度的時(shí)候就在想,能不能實(shí)現(xiàn)連續(xù)的旋轉(zhuǎn),而不是每次運(yùn)行都轉(zhuǎn)到同一個(gè)位置,后來發(fā)現(xiàn)只要把每次轉(zhuǎn)完的數(shù)據(jù)保存,然后以此作為下一次旋轉(zhuǎn)的源數(shù)據(jù)就可以,于是這個(gè)功能葉完成了。具體實(shí)現(xiàn)如下:y=imrotate(r,90); r=y;%把每次處理完的數(shù)據(jù)保存下來,作為下一次處理的源數(shù)據(jù)5.7、r90ccw(逆時(shí)針旋轉(zhuǎn)90度)逆時(shí)針旋轉(zhuǎn)和順時(shí)針旋轉(zhuǎn)的思路一樣,只是我們要把每次處理完的數(shù)據(jù)做為全局變量,這樣以來順時(shí)針和逆時(shí)針選擇功能都可以處理它,所以在按鈕的回調(diào)函數(shù)前加上要加上global r ,其中r是每次旋轉(zhuǎn)后的圖像矩陣。5.8、exit(退出)在設(shè)計(jì)退出的程序時(shí),只用了clc;clear all;close (gcf);后來發(fā)現(xiàn)一個(gè)問題,就是在退出后再一次運(yùn)行g(shù)ui,當(dāng)點(diǎn)擊任意一個(gè)功能的時(shí)候,都可以顯示出上次退出前的圖像,也就是說坐標(biāo)軸內(nèi)的圖像還沒有清楚,后來通過的一番搜索,找到了相應(yīng)的指令,cla reset,于是問題得到了解決。六、 菜單功能6.1、文件該菜單包含文件的打開,保存和退出gui的功能,這幾個(gè)功能是每一種圖像處理軟件必備的功能。6.1.1、打開為了讓使用者打開所需要的圖片,設(shè)計(jì)了打開圖像這項(xiàng)基本功能。通過對(duì)話框的形式來選擇文件,選擇uigetfile函數(shù)來實(shí)現(xiàn),uigetfile函數(shù)顯示一個(gè)打開文件對(duì)話框,該對(duì)話框自動(dòng)列出當(dāng)前路徑下的目錄和文件。uigetfile函數(shù)的調(diào)用格式為name,path=yigetfile(), 在按下對(duì)話框中的執(zhí)行按鈕“打開”后,返回選擇的文件名和路徑,分別保存到“name”和“path”中。通過imread函數(shù)讀出圖像數(shù)據(jù),把圖像數(shù)據(jù)賦值給全局變量im,這里得到的im要聲明為全局變量,為后面每個(gè)功能所使用。6.1.2、保存對(duì)于圖像保存,可以用imwrite函數(shù),把數(shù)據(jù)i存到指定的文件夾中。這里仍然要用到uigetfile函數(shù)來實(shí)現(xiàn),用它獲得將要保存的路徑??梢灾付ㄎ募4娴母袷?,如:imwrite(i,file,jpg);,其中i為從坐標(biāo)軸中獲取的圖像信息:i=getimage(gca);6.1.3、退出退出和按鈕的退出功能一樣,清除所有變量和坐標(biāo)軸中的內(nèi)容。clc;clear all;cla reset;close(gcf) 6.2、編輯 該菜單包含圖像放大,縮小,灰度轉(zhuǎn)換,亮度轉(zhuǎn)換,任意角度旋轉(zhuǎn)和截圖這幾項(xiàng)功能,這些是對(duì)圖像的一些基本幾何變換等基本功能。6.2.1、放大在matlab中,用函數(shù)imresize來實(shí)現(xiàn)對(duì)圖像的放大或縮小。插值方法可選用三種方法,最近鄰插值,雙線性插值,雙三次插值。該函數(shù)的調(diào)用格式如下:bimresize(a,m,method)其中:參數(shù)method用于指定插值的方法,可選的值為“nearest”(最近鄰法),“bilinear”(雙線性插值)、“bicubic”(雙三次插值),缺省值為“nearest”。在實(shí)現(xiàn)放大后,顯示圖像并不能清晰地看出來圖像有什么具體的變化,但是通過查詢圖像屬性后可以發(fā)現(xiàn),圖像放大了。 6.2.2、縮小縮小的原理和放大原理是一樣的,就是對(duì)bimresizee(am,method)中參數(shù)m進(jìn)行修改,當(dāng) m小于1時(shí)實(shí)際上是縮?。煌糯笠粯?,如果原圖質(zhì)量較好,尺寸較大,由于限制了坐標(biāo)軸大小的緣故,在功能現(xiàn)實(shí)時(shí)我們看不出變化,而實(shí)際上是有變化的。通過查看圖片屬性可以看到: 我們可以看到,放大兩倍后的圖像尺寸是原圖的0.5倍,但由于限制了坐標(biāo)軸大小的緣故,在功能現(xiàn)實(shí)時(shí)我們看不出變化,而實(shí)際上是有變化的,這和圖片放大時(shí)一樣的。6.2.3、灰度由于rgb圖像是三維圖像,所以圖像數(shù)據(jù)是一個(gè)三維數(shù)組,為了顯示灰度圖像,把三維圖像降為二維,可以只取其中的二維數(shù)據(jù),實(shí)現(xiàn)方法程序?yàn)椋篻lobal im yim(:,:,1);imshow(y); 我們也可以通過調(diào)用圖像類型轉(zhuǎn)化函數(shù)來實(shí)現(xiàn):global im yrgb2gray(im);imshow(y); 這個(gè)程序只能用于rgb圖像轉(zhuǎn)換灰度圖像,當(dāng)原始圖像本來就是灰度圖像時(shí),運(yùn)行該程序時(shí)就會(huì)出錯(cuò),但是使用者在使用時(shí)有時(shí)并不知道這些,為了使該程序更加完善,應(yīng)該在使用者原先圖像時(shí)灰度圖像時(shí)使用該功能時(shí),應(yīng)該要顯示提示類信息。所以在開始時(shí)應(yīng)該要有一個(gè)rgb圖像或是灰度圖像的判斷過程。完整的程序如下: if isrgb(im) %判斷是否為灰度圖像y=rgb2gray(im); imshow(y);else msgbox(error,this is already a gray img);end如果原圖是rgb,執(zhí)行該操作的結(jié)果如下圖:如果原圖是灰度圖像,則提示: 6.2.4、亮度用imadjust函數(shù),其調(diào)用格式如下: g=imadust(f,low_in high_in,low_out high_out),gamma)gamma 表示映射性質(zhì),默認(rèn)值是1 表示線性映射。由于該函數(shù)有五個(gè)參數(shù)需要輸入,為了方便用戶改變,所以這里設(shè)計(jì)一個(gè)輸入對(duì)話框,用戶通過對(duì)話框把五個(gè)參數(shù)賦值給low_in high_in,low_out high_out,gamma這五個(gè)參數(shù),如下一組命令建立了如圖所示的輸入對(duì)話框:prompt=輸入?yún)?shù)1,輸入?yún)?shù)2,輸入gamma;defans=0 0.7,0 1,1;p=inputdlg(prompt,輸入?yún)?shù),1,defans); %這里得到的都是字符最后我們還要把得到的字符轉(zhuǎn)換為數(shù)值:p1=str2num(p1);p2=str2num(p2);p3=str2num(p3);但是,這種方法并不能很好的讓用戶能夠?qū)D像進(jìn)行任意的亮度和對(duì)比度變化調(diào)整,有時(shí)并不事先知道參數(shù)的值要多少,也不關(guān)心,而是任意調(diào)節(jié)的,直到滿意為止。所以應(yīng)該用滑動(dòng)條來調(diào)節(jié)圖像的亮度和對(duì)比度,這樣更適合用戶的使用習(xí)慣。由于imadjust函數(shù)有五個(gè)參數(shù),所以原則上需要設(shè)計(jì)五個(gè)滑動(dòng)條來調(diào)節(jié)對(duì)比度,這對(duì)用戶來說顯然比較麻煩,因此在設(shè)計(jì)的時(shí)候固定其中的三個(gè)參數(shù),通過調(diào)節(jié)兩個(gè)參數(shù)的值來改變亮度和對(duì)比度?;瑒?dòng)條設(shè)計(jì)如下圖:亮度調(diào)整的tag名為ld,取值范圍01,gamma值的tag名為gamma,取值范圍為03。獲取滑動(dòng)條參數(shù)的程序如下:a=get(hobject,value); %滑動(dòng)條lightp2=0 a;p3=get(hobject,value); %滑動(dòng)條gammay=imadjust(im,0 0.5,p2,p3);這樣我們就可以通過調(diào)整滑動(dòng)條的位置來隨時(shí)改變亮度值,得到想要的效果。6.2.5、旋轉(zhuǎn)用函數(shù)imrotate來實(shí)現(xiàn)對(duì)圖像的插值旋轉(zhuǎn)。該函數(shù)的調(diào)用格式如下: bimrotate(a,angle,method,crop)其中,參數(shù)method用于指定插值的方法,可選的值可以有三種,分別為鄰近插值,雙線性插值,雙三次插值,缺省時(shí)為鄰近插值,參數(shù)angle代表旋轉(zhuǎn)的角度。當(dāng)然我們也可以和前面一樣通過對(duì)話框的交互形式來實(shí)現(xiàn)任意角度的輸入。6.2.6、截圖在matlab中,用函數(shù)imcrop實(shí)現(xiàn)對(duì)圖像的剪切操作。該操作剪切的是圖像中的一個(gè)矩形子圖,用戶可以通過參數(shù)指定這個(gè)矩形四個(gè)頂點(diǎn)的坐標(biāo),也可以交互地用鼠標(biāo)選取這個(gè)矩形。imcrop函數(shù)的調(diào)用格式如下:y=imcrop(im);imshow(y);截圖的效果如下:6.3、變換 該菜單包括傅里葉變換,離散余弦變換,radon變換這三項(xiàng)功能,圖像的變換使圖像處理的一個(gè)重要內(nèi)容,它是許多圖像處理技術(shù)的基礎(chǔ)。為了有效和快速地對(duì)圖像進(jìn)行處理和分析,常常需要將原定義在圖像的空間的圖像以某種形式轉(zhuǎn)換到另一個(gè)空間,并利用這些空間的特有性質(zhì)更方便地進(jìn)行一些處理,最后再變換會(huì)到原空間以得到所需的效果。6.3.1、傅里葉變換為了得到圖像的頻譜圖,先要對(duì)數(shù)據(jù)進(jìn)行傅里葉變換,用fft2函數(shù)對(duì)二維數(shù)據(jù)進(jìn)行快速傅里葉變換,同時(shí)為了更好的觀察頻譜圖,需要把fft2變換后的數(shù)據(jù)進(jìn)行平移,利用fftshift函數(shù),把快速傅里葉變換的dc 組件移到光譜中心。這樣圖像能量的低頻成分將集中到頻譜中心,圖像上的邊緣、線條細(xì)節(jié)信息等高頻成分將分散在圖像頻譜的邊緣。執(zhí)行的相關(guān)程序和處理后的效果如下所示:m=fft2(x); %對(duì)圖像執(zhí)行二維傅里葉變換y=fftshift(m); %使低頻能量集中在中心位置 imshow(log(abs(y),);%使用對(duì)數(shù)使低頻部分顯示效果更明顯6.3.2、離散余弦變換傅里葉變化的一個(gè)最大問題是:它的參數(shù)都是復(fù)數(shù),在數(shù)據(jù)的描述上相當(dāng)于實(shí)數(shù)的兩倍,不易計(jì)算,因此希望有一種能達(dá)到相同功能但數(shù)據(jù)量有不大的變換,在這個(gè)思想的指導(dǎo)下,產(chǎn)生了離散余弦變換。執(zhí)行的相關(guān)程序和處理后的效果如下所示:gray=rgb2gray(im);d=dct2(gray); %對(duì)圖像進(jìn)二維行離散余弦變換axes(handles.axes2);imshow(log(abs(d),); %使用對(duì)數(shù)使低頻部分顯示效果更明顯通過變換我們可以看到,圖像的低頻能量都集中在左上角區(qū)域,向著右下角方向,頻率越來越高,這主要是以為離散余弦變換核實(shí)際上是取傅里葉變化的實(shí)部。6.3.2、radon變換radon函數(shù)計(jì)算指定方向上圖像矩陣的投影,計(jì)算一定方向上平行光束的線積分。光線間隔1個(gè)象素單位。為了表示圖像,radon變換通過圍繞圖像中心旋轉(zhuǎn)光源來從不同角度獲得圖像的平行光投影。執(zhí)行的相關(guān)程序和處理后的效果如下所示:theta=0:1:180;%對(duì)每個(gè)角度做radon變換處理r,xp=radon(im,theta);imagesc(theta,xp,r);xlabel(degrees);%為x軸做標(biāo)注colorbar;%顯示顏色條radon變換域hough變換緊密相關(guān)。可以用radon函數(shù)實(shí)現(xiàn)hough變換的一種形式來找出圖像中的直線對(duì)象,執(zhí)行的相關(guān)程序和處理后的效果如下所示:im=imread(1.jpg);im=mat2gray(im);bw=edge(im);% 邊緣檢測(cè)imshow(bw);6.4、噪聲該菜單包含四種噪聲的添加,高斯噪聲,椒鹽噪聲,斑點(diǎn)噪聲,泊松噪聲。因此我們要對(duì)噪聲進(jìn)行研究,找到最好的去處噪聲的方法。 6.4.1、高斯噪聲所謂高斯噪聲是指它的概率密度函數(shù)服從高斯分布(即正態(tài)分布)的一類噪聲。高斯噪聲是一種隨機(jī)噪聲,它完全由其時(shí)變平均值和兩瞬時(shí)的協(xié)方差函數(shù)來確定。執(zhí)行的相關(guān)程序和處理后的效果如下所示:y=imnoise(im,gaussian,p1,p2);6.4.2、椒鹽噪聲椒鹽噪聲是由圖像傳感器,傳輸信道,解碼處理等產(chǎn)生的黑白相間的亮暗點(diǎn)噪聲。椒鹽噪聲往往由圖像切割引起。去除脈沖干擾級(jí)椒鹽噪聲最常用的算法是中值濾波。執(zhí)行的相關(guān)程序和處理后的效果如下所示:y=imnoise(x,salt & pepper,p1);6.4.3、斑點(diǎn)噪聲斑點(diǎn)噪聲是sar成像系統(tǒng)的一大特色,源自基本分辨單元內(nèi)地物的隨機(jī)散射,在圖像上表現(xiàn)為信號(hào)相關(guān)(如在空間上相關(guān))的小斑點(diǎn),它既降低了圖像的畫面質(zhì)量,又嚴(yán)重影響圖像的自動(dòng)分割、分類、目標(biāo)檢測(cè)以及其它定量專題信息的提取 。sar斑點(diǎn)噪聲的抑制可通過非相干多視處理,也可使用空間域?yàn)V波實(shí)現(xiàn)。執(zhí)行的相關(guān)程序和處理后的效果如下所示:y=imnoise(im,speckle,p1);6.4.4、泊松噪聲執(zhí)行的相關(guān)程序和處理后的效果如下所示: y=imnoise(im,poisson);6.5、濾波該按鈕包含了高通,低通濾波,平滑,銳化的線性和非線性濾波,大量的實(shí)驗(yàn)研究發(fā)現(xiàn),由攝像機(jī)拍攝得到的圖像受離散的脈沖、椒鹽噪聲和零均值的高斯噪聲的影響較嚴(yán)重。噪聲給圖像處理帶來很多困難,對(duì)圖像分割、特征提取、圖像識(shí)別等具有直接影響。因此,實(shí)時(shí)采集的圖像需進(jìn)行濾波處理。注:對(duì)于平滑和銳化濾波都要先添加噪聲。6.5.1、高通濾波高通濾波是只對(duì)低于某一給定頻率以下的頻率成分有衰減作用,而允許這個(gè)截止頻率以上的頻率成分通過,并且沒有相位移的濾波過程。主要用來消除低頻噪聲,保留高頻部分。圖像中的邊緣或線條與圖像頻譜中的高頻分量相對(duì)應(yīng),因?yàn)椴捎酶咄V波器讓高頻成分順利通過,可以使圖像的邊緣或線條更加清楚,從而識(shí)相圖像的銳化。執(zhí)行的相關(guān)程序和處理后的效果如下所示:6.5.2、低通濾波 圖像的邊緣以及噪聲干擾在圖像的頻域上對(duì)應(yīng)于圖像傅里葉變換中的高頻部分,而圖像的背景區(qū)則對(duì)應(yīng)于低頻部分,因此可以用頻域低通濾波法去除圖像的高頻部分,以去掉噪聲使圖像平滑。對(duì)于低通濾波器截止頻率的不同,會(huì)發(fā)生不同程度的“振鈴”現(xiàn)象,同時(shí)圖像變模糊了。截止頻率月底,濾除噪聲越徹底,高頻分量損失越嚴(yán)重,但圖像就越模糊。執(zhí)行的相關(guān)程序和處理后的效果如下所示:6.5.3、平滑線性濾波(領(lǐng)域平均法)對(duì)一些圖像進(jìn)行線性濾波可以去除圖像中的某些類型的噪聲,如采用領(lǐng)域平均法的均值濾波器就非常適用于去除通過掃描得到的圖像中的顆粒噪聲。領(lǐng)域平均法是空間域平滑噪聲技術(shù)。對(duì)于給定圖像的每個(gè)像點(diǎn),取其領(lǐng)域含有m個(gè)像素,取其平均值作為處理后所得到圖像像點(diǎn)的灰度,用一像素領(lǐng)域內(nèi)個(gè)像素灰度平均值來代替該像素的灰度。執(zhí)行的相關(guān)程序和處理后的效果如下所示:h=ones(3,3)/9;%產(chǎn)生濾波模板并歸一化y=conv2(zs,h);%用均值模板對(duì)圖像濾波axes(handles.axes2);imshow(y,); 可以看出,領(lǐng)域平均法也平滑了圖像信號(hào),特別是可能使圖像目標(biāo)區(qū)域的邊界變得模糊。可以證明,對(duì)圖像進(jìn)行領(lǐng)域平滑處理相當(dāng)于圖像信號(hào)通過一低通濾波器。6.5.4、平滑非線性濾波(中值濾波) 中值濾波是抑制噪聲的非線性處理方法。給定一個(gè)濾波窗口,對(duì)于二維圖像,窗口形狀可以使矩形,圓形及十字形等,對(duì)于位于中間位置的那個(gè)數(shù)值稱為這n個(gè)數(shù)值的中值。中值濾波的算法運(yùn)算簡(jiǎn)單,易于實(shí)現(xiàn),而且能較好地保護(hù)邊界,但有時(shí)會(huì)失掉圖像中的細(xì)線和小塊的目標(biāo)區(qū)域。執(zhí)行的相關(guān)程序和處理后的效果如下所示:y=medfilt2(zs,5,5);%用5*5的濾波窗口對(duì)圖像進(jìn)行中值濾波axes(handles.axes2);imshow(y);6.5.5、銳化線性濾波 拉氏算子比較適用于改善因?yàn)楣饩€的漫反射造成的圖像模糊,其原理是這樣的,在攝影膠片記錄圖像的光化過程中,光點(diǎn)將漫反射到其它周圍區(qū)域,造成圖像模糊,不模糊圖像等于模糊圖像減去它的拉氏變換的常數(shù)倍。另外,人們還發(fā)現(xiàn),及時(shí)模糊不是由于光的漫反射造成的,對(duì)圖像進(jìn)行拉氏變換也可以使圖像更清晰。執(zhí)行的相關(guān)程序和處理后的效果如下所示:i1=double(im);h=fspecial(laplacian);%拉氏算子i2=filter2(h,i1);%濾波axes(handles.axes2);i3=i1-i2;%減去模糊圖像imshow(i3,);比較原始圖像和經(jīng)拉氏算子運(yùn)算的圖像,可以發(fā)現(xiàn),圖像的模糊部分得到了銳化,特別是模糊的邊緣部分得到了增強(qiáng),邊界更加明顯。但是,圖像顯示清楚的地方,經(jīng)濾波后發(fā)生了失真,這也是拉氏算子增強(qiáng)的一大缺點(diǎn)。6.5.6、銳化非線性濾波 對(duì)一幅圖像施加梯度模算子,可以增強(qiáng)灰度變化的幅度,因此我們可以采用梯度模算子作為圖像的銳化算子,而且梯度模算子還具有方向同性和位移不變性。sobel算子的特點(diǎn)是對(duì)稱的一階差分,對(duì)中心加權(quán),具有一定的平滑作用。執(zhí)行的相關(guān)程序和處理后的效果如下所示:h=fspecial(sobel);%梯度模算子axes(handles.axes2);j=filter2(h,im);%濾波imshow(j);6.6、直方圖統(tǒng)計(jì)該按鈕包含了rgb三基色的直方圖統(tǒng)計(jì)功能,灰度直方圖是表示一幅圖像灰度分布情況的統(tǒng)計(jì)表。直方圖的橫坐標(biāo)是灰度級(jí),縱坐標(biāo)是具有該灰度級(jí)的像素個(gè)數(shù)或出現(xiàn)這個(gè)灰度級(jí)的概率。所以說,直方圖統(tǒng)計(jì)提供了原圖的灰度值分布情況,也可說給出了一幅圖所有灰度值的整體描述。我們可以根據(jù)一幅圖的灰度直方圖情況來判斷其質(zhì)量,并可以通過一定的變換使原來偏暗或偏亮的圖像變換到動(dòng)態(tài)范圍正常的區(qū)域,如直方圖的規(guī)定化。6.6.1、r直方圖灰度和彩色圖形都有r直方圖。執(zhí)行的相關(guān)程序和處理后的效果如下所示: x=imhist(im(:,:,1);%統(tǒng)計(jì)圖片每個(gè)灰度值個(gè)數(shù) x1=x(1:10:256);horz=1:10:256;bar(horz,x1);%柱狀圖顯示6.6.2、g直方圖對(duì)于彩色圖形沒有g(shù)直方圖。執(zhí)行的相關(guān)程序和處理后的效果如下所示: x=imhist(im(:,:,2);%統(tǒng)計(jì)圖片每個(gè)灰度值個(gè)數(shù) x1=x(1:10:256);horz=1:10:256;bar(horz,x1);%柱狀圖顯示6.6.3、b直方圖對(duì)于彩色圖形沒有b直方圖。執(zhí)行的相關(guān)程序和處理后的效果如下所示: x=imhist(im(:,:,3);%統(tǒng)計(jì)圖片每個(gè)灰度值個(gè)數(shù) x1=x(1:10:256);horz=1:10:256;bar(horz,x1);%柱狀圖顯示6.7、圖像增強(qiáng) 該菜單包含灰度圖像的偽彩色增強(qiáng),彩色圖像的真彩色增強(qiáng),圖像的直方圖均衡,彩色圖像的ntsc,ycbcr,hsv顏色模型轉(zhuǎn)換。在圖像的生產(chǎn),傳輸或變換的過程中,由于多種因素的影響,總要造成圖像質(zhì)量的下降,這就需要進(jìn)行圖像增強(qiáng),改善圖像的視覺效果,提高圖像的清晰度。6.7.1、偽彩色增強(qiáng)對(duì)于灰度圖像,人眼分辨的灰度級(jí)只有十幾到二十幾,而對(duì)不同的亮度和色彩圖像則可以達(dá)到幾百甚至上千,因此偽彩色增強(qiáng)是將一個(gè)波段或單一的黑白圖像變換為彩色圖像,從而把人眼不能區(qū)分的微小的灰度差別顯示為明顯的色彩差異,更便于解譯和提取有用信息。偽彩色增強(qiáng)的方法主要有以下三種:亮度切割技術(shù),灰度彩色變換,頻域?yàn)V波法。 我采用的是亮度切割技術(shù),亮度切割技術(shù)是偽彩色增強(qiáng)中最簡(jiǎn)單的一種方法,它是對(duì)圖像亮度范圍進(jìn)行分割,使一定亮度間隔對(duì)應(yīng)于某一顏色。對(duì)于切割平面以下的分配一中顏色,平面以上的再分配一種顏色。這樣,便可以把一幅灰度圖像變成一幅偽彩色圖像,此法比較直觀簡(jiǎn)單,缺點(diǎn)使變換出的彩色數(shù)目有限而且顏色生硬不夠調(diào)和,量化噪聲大。執(zhí)行的相關(guān)程序和處理后的效果如下所示: c=zeros(size(a); %a為原灰度圖像矩陣 pos=find(a100);%找到灰度值小于100的 c(pos)=a(pos); b(:,:,3)=c;%變?yōu)樗{(lán)色 %對(duì)于其它顏色的變換思路同上,最后顯示偽彩色變換后的圖像b imshow(b);6.7.2、真彩色增強(qiáng)真彩色增強(qiáng)時(shí)從彩色到彩色的一種變換。通過一定的映射函數(shù)變換成新的三基色分量,彩色合成使得增強(qiáng)圖像中各目標(biāo)呈現(xiàn)出與原圖像不同的彩色。通過真彩色增強(qiáng)我們可以達(dá)到變換圖像引起人們的特別關(guān)注,以及通過人眼對(duì)不同顏色的靈敏度的不同,使景物呈現(xiàn)出與人眼色覺相匹配的顏色,以提高人眼對(duì)目標(biāo)的分辨力。執(zhí)行的相關(guān)程序和處理后的效果如下所示:im(:,:,1)=immultiply(im(:,:,1),0.3);%對(duì)r基色每個(gè)元素乘以0.3im(:,:,2)=immultiply(im(:,:,2),0.2);%對(duì)g基色每個(gè)元素乘以0.2im(:,:,3)=immultiply(im(:,:,3),0.5);%對(duì)b基色每個(gè)元素乘以0.5axes(handles.axes2);imshow(im);%最后顯示處理變換后的rgb圖像6.7.3、直方圖均衡如果獲得的一幅圖像的直方圖效果不理想,可以通過直方圖均衡化處理技術(shù)作適當(dāng)?shù)男薷?,?shí)現(xiàn)圖像清晰的目的。這種方法的基本思想是對(duì)原始圖像中的像素灰度做某種映射變換,是變換后的圖像灰度概率密度是均勻分布的。執(zhí)行的相關(guān)程序和處理后的效果如下所示:if isrgb(im) %對(duì)灰度圖像和彩色圖像分別處理 a=histeq(im(:,:,1); %對(duì)每一種基色直方圖均衡 b=histeq(im(:,:,2); c=histeq(im(:,:,3); k(:,:,1)=a; k(:,:,2)=b; k(:,:,3)=c; imshow(k); elseh=histeq(im); %對(duì)灰度圖像直方圖均衡 imshow(h);end通過變換,圖像灰度的動(dòng)態(tài)范圍得到了增加,從而提高圖像的對(duì)比度,但是他是以減少圖像的灰度等級(jí)為代價(jià)的,而且均衡化在增加圖像反差的同時(shí),也增加了圖像的顆粒感,感覺好像圖像時(shí)由許多細(xì)小顆粒組成的。6.7.4、ntsc顏色模型ntsc模型廣泛應(yīng)用于美國(guó)等國(guó)家的電視信號(hào),它的特點(diǎn)是信號(hào)的強(qiáng)度信息相分離,同一個(gè)信號(hào)可以方便地同時(shí)表示彩色圖像和黑白圖像。在ntsc格式中,圖像由三個(gè)分量表示:亮度(luminance)用y表示,色度(hue)用i表示,飽和度(saturation)用q表示。第一個(gè)分量y,表示灰度信息,后兩個(gè)分量表示彩色信息。因此ntsc模型使用的是yiq色彩坐標(biāo)軸,ntsc模型的色彩空間又稱yiq空間。通過執(zhí)行相關(guān)函數(shù)我們可以分析彩色圖像的每一個(gè)分量的情況。執(zhí)行的相關(guān)程序和處理后的效果如下所示:global imy=rgb2ntsc(im);%將rgb顏色模型轉(zhuǎn)化為ntsc顏色模型subplot(1,3,1); imshow(y(:,:,1);%y亮度 ;xlabel(luminance);subplot(1,3,2);imshow(y(:,:,2);%i色調(diào) ;xlabel(hue);subplot(1,3,3);imshow(y(:,:,3); %q飽和度 ;xlabel(saturation);6.7.5、ycbcr顏色模型 在dvd、攝像機(jī)、數(shù)字電視等消費(fèi)類視頻產(chǎn)品中,常用的色彩編碼方案是ycbcr,其中y是指亮度分量,cb指藍(lán)色色度分量,而cr指紅色色度分量。人的肉眼對(duì)視頻的y分量更敏感,因此在通過對(duì)色度分量進(jìn)行子采樣來減少色度分量后,肉眼將察覺不到的圖像質(zhì)量的變化。通過函數(shù)變換我們可以比較兩種顏色的差異。執(zhí)行的相關(guān)程序和處理后的效果如下所示: y=rgb2ycbcr(im);imshow(y);6.7.6、hsv顏色模型hsv(hue,saturation,value)顏色空間的模型對(duì)應(yīng)于圓柱坐標(biāo)系中的一個(gè)圓錐形子集,圓錐的頂面對(duì)應(yīng)于v=1. 它包含rgb模型中的r=1,g=1,b=1 三個(gè)面,所代表的顏色較亮。色彩h由繞v軸的旋轉(zhuǎn)角給定。紅色對(duì)應(yīng)于 角度0 ,綠色對(duì)應(yīng)于角度120,藍(lán)色對(duì)應(yīng)于角度240。在hsv顏色模型中,每一種顏色和它的補(bǔ)色相差180 。 飽和度s取值從0到1,所以圓錐頂面的半徑為。在圓錐的頂點(diǎn)(即原點(diǎn))處,v=0,h和s無定義, 代表黑色。圓錐的頂面中心處s=0,v=1,h無定義,代表白色。通過函數(shù)變換我們可以比較兩種顏色的差異。執(zhí)行的相關(guān)程序和處理后的效果如下所示:y=rgb2hsv(im);imshow(y);6.8、閾值分割一幅圖像包括目標(biāo),背景和噪聲,怎樣從灰度圖像中取出對(duì)象物?灰度閾值法就是把圖像的灰度分成不同的等級(jí),然后用設(shè)置灰度閾值的方法確定有意義的區(qū)域或欲分割物體的邊界。設(shè)定某一閾值t,對(duì)圖像進(jìn)行二值化處理。執(zhí)行的相關(guān)程序和處理后的效果如下所示:global imi=im;i=double(i(:,:,1);%只對(duì)灰度進(jìn)行處理fxy=zeros(1,256);m,n=size(i);for i=1:m %統(tǒng)計(jì)每個(gè)灰度值的個(gè)數(shù) for j=1:n c=i(i,j); fxy(c+1)=fxy(c+1)+1; endend figure(1);plot(fxy);%畫出灰度直方圖p1=input num:;%設(shè)置個(gè)對(duì)話框,選擇閾值p2=180;p3=inputdlg(p1,input num:1256,1,p2);p=str2num(p31);for i=1:m %小于閾值的為黑,大于閾值的為白 for j=1:n if i(i,j) *inner matrix dimensions must agree.? error using = .*matrix dimensions must agree.這兩個(gè)問題是關(guān)于矩陣和數(shù)組的乘法運(yùn)算。矩陣的乘法運(yùn)算表達(dá)式為a*b,表示矩陣相乘,其中矩陣a的列數(shù)必須等于矩陣b的行數(shù);數(shù)組的乘法運(yùn)算表達(dá)式為a.*b,運(yùn)算符為.*,表示數(shù)組a和b中對(duì)應(yīng)的元素相乘,a和b數(shù)組的大小必須相同。2)? subscripted assignment dimension mismatch.錯(cuò)誤的原因是矩陣的維數(shù)沒有匹配,不同類型的圖片維數(shù)不相同。對(duì)于灰度圖像,它是m*n二維的;對(duì)于彩色圖像,它是m*n*k三維的。所以在使用函數(shù)之前要明確它所支持的圖像類型,我們可以通過rgb2gray或gray2rgb這一類函數(shù)將圖片轉(zhuǎn)換為所支持的類型,我們也可以通過相應(yīng)函數(shù)來判斷矩陣的維數(shù),matlab中ndims(cdata)就支持這種功能,它返回值為正整數(shù)n,n代表它的維數(shù)。3)在實(shí)現(xiàn)圖像放大,縮小,亮度調(diào)整等功能時(shí),為了方便修改,設(shè)置對(duì)話框輸入,但從對(duì)話框輸入的數(shù)其實(shí)是字符,并不是真正的整型數(shù)值,所以如果沒有對(duì)字符轉(zhuǎn)數(shù)值變化,就會(huì)得到錯(cuò)誤的結(jié)果,舉個(gè)簡(jiǎn)單的例子:a=2; b=2; a*bans = 100得到的100并不是我們所想要的4,之所以還會(huì)出結(jié)果是因?yàn)?,字?對(duì)應(yīng)的ascii碼值為50,而matlab有支持這種算法,所以會(huì)得到100的結(jié)果。正確的做法應(yīng)該是這樣:a=2; a=str2num(s); b=2; a*bans = 4所以說我們?cè)趯?duì)數(shù)據(jù)做處理的時(shí)候,一定要分清出它的類型,以免到時(shí)候查不出錯(cuò)誤。4)關(guān)于全局變量的設(shè)置,打開了一張圖片,為了能供每個(gè)功能做相應(yīng)的處理,就得把圖片矩陣的屬性設(shè)置為global im,這樣做以后卻只能實(shí)現(xiàn)對(duì)源圖像做處理,如果要對(duì)處理過后的圖像再做處理,我們就要把處理完后的新圖像矩陣賦給源圖像,im=y,這樣就可以實(shí)現(xiàn)每次處理的對(duì)象都為上次處理完的圖像了。5)關(guān)于句柄的操作,在設(shè)置滑動(dòng)條來改變圖像的亮度是,雖然編譯沒有出錯(cuò),但是卻實(shí)現(xiàn)不了亮度的變化,這是因?yàn)闆]有得到滑動(dòng)條的句柄。在gui界面,雙擊相應(yīng)的按鈕或是滑動(dòng)條這些元件,都可以得到property inspector(屬性面板),里面有各種關(guān)于這個(gè)元件的信息,我們可以在這個(gè)界面直接修改,也可以通過函

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論