




已閱讀5頁,還剩47頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
基于matlab的圖像處理制作自己的photoshop 課程設(shè)計學(xué)生姓名: 學(xué) 號: 專業(yè)班級: 指導(dǎo)教師: 二一 年 四 月 十三 日 目錄一、 課程設(shè)計目的.3二、 課程設(shè)計描述.3三、 課程設(shè)計要求.3四、 總體設(shè)計.3五、 按鈕功能.45.1、scan(瀏覽) . .65.2、back(上一張) . .65.3、next(下一張) . .75.4、mark(添加水印) . .75.5、magnify(以鼠標(biāo)點擊為中心放大) .75.6、r90cw(順時針旋轉(zhuǎn)90度) .85.7、r90ccw(逆時針旋轉(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、斑點噪聲.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)計 . 196.6.1、r直方圖.206.6.2、g直方圖.206.6.3、b直方圖.216.7、圖像增強 . .216.7.1、偽彩色增強 .216.7.2、真彩色增強 . . . .226.7.3、直方圖均衡 . . . .226.7.4、ntsc顏色模型 .236.7.5、ycbcr顏色模型 .236.7.6、hsv顏色模型 . . . .246.8、閾值分割 . . . 24七、 程序調(diào)試及問題分析.26八、 心得體會.28九、 參考文獻(xiàn).29十、 附錄.29一、 課程設(shè)計目的綜合運用matlab工具箱實現(xiàn)圖像處理的gui程序設(shè)計。二、 課程設(shè)計描述 學(xué)習(xí)matlab gui程序設(shè)計,利用matlab圖像處理工具箱,設(shè)計和實現(xiàn)自己的photoshop 。要求:按照軟件工程方法,根據(jù)需求進(jìn)行程序的功能分析和界面設(shè)計,給出設(shè)計詳細(xì)說明。然后按照自己擬定的功能要求進(jìn)行程序設(shè)計和調(diào)試。 以下列出幾點程序的功能,供參考1)圖像的讀取和保存。2)設(shè)計圖形用戶界面,讓用戶能夠?qū)D像進(jìn)行任意的亮度和對比度變化調(diào)整,顯示和對比變換前后的圖像。3)設(shè)計圖形用戶界面,讓用戶能夠用鼠標(biāo)選取圖像感興趣區(qū)域,顯示和保存該選擇區(qū)域。4)編寫程序通過最近鄰插值和雙線性插值等算法將用戶所選取的圖像區(qū)域進(jìn)行放大和縮小整數(shù)倍的操作,并保存,比較幾種插值的效果。5)圖像直方圖統(tǒng)計和直方圖均衡,要求顯示直方圖統(tǒng)計,比較直方圖均衡后的效果。6)能對圖像加入各種噪聲,并通過幾種濾波算法實現(xiàn)去噪并顯示結(jié)果。比較去噪效果。三、 課程設(shè)計要求1)熟悉和掌握matlab 程序設(shè)計方法2)掌握matlab gui 程序設(shè)計3)學(xué)習(xí)和熟悉matlab圖像處理工具箱4)學(xué)會運用matlab工具箱對圖像進(jìn)行處理和分析四、 總體設(shè)計這次的設(shè)計的功能按鈕包括菜單和面板的按鈕兩部分,面板上的按鈕功能和菜單上的“閾值分割”功能是相對比較有新意的,這幾個功能基本都是自己編寫的源程序,并沒有現(xiàn)成的功能函數(shù)貢直接調(diào)用,算是花了不少功夫吧。然后菜單上的功能都是圖像處理必備的一些基本功能,大多可以通過matlab自帶的一些現(xiàn)成函數(shù)來調(diào)用以實現(xiàn),關(guān)鍵是要注意它的使用語法和支持的圖像類型。注:整個設(shè)計都是基于matlab 6.5版本。對于一些需要動態(tài)演示的,無法貼圖,在附件里有演示視頻具體的菜單功能和面板設(shè)計如下圖所示: 五、 按鈕功能5.1、scan(瀏覽)為了能讓圖像處理人員實現(xiàn)預(yù)覽將要處理的圖像,設(shè)計了這個功能。該功能實現(xiàn)的主要思想是,先獲取圖片所在文件夾的路徑,然后列出文件夾的文件內(nèi)容,最后通過一個循環(huán)來讀取每一張圖片,需要用到的一些函數(shù)如下:directoryname = uigetdir(, pick up files); %獲得文件夾路徑,得到一個字符數(shù)組files = dir(directoryname);%列出文件夾里的內(nèi)容,包含(name date bytes isdir)directoryname1 = strcat(directoryname,);%字符連接max = size(files,1);%得到總共文件數(shù)pause(0.8);%暫停在設(shè)計過程中有碰到一個問題,對于d1 = files(i).name;當(dāng)i為1,2時得到不是圖片的文件名,所以說循環(huán)時要從3開始。 d1 = files(1).named1 =. d1 = files(2).named1 =.在按鈕調(diào)試的過程中,后來又發(fā)現(xiàn)了一個問題,但文件夾中包含其它非圖片格式的文件時會出錯,讀取的文件路徑無法顯示,因為它的格式不是合法圖片格式。為了解決這個問題,我就通過獲取每個文件的格式,然后判斷它的格式是否為圖片,是則顯示,不是則跳過,這樣以來就循環(huán)次數(shù)也可以從1開始了。具體需要用到的函數(shù)如下:a = jpg, png, bmp, jpeg, tif;%合法的圖片類型d2 = strfind(d1, .);%獲取.在字符串中的位置,因為.之后為文件類型if any(ismember(a, d1(d2+1:end);%判斷文件類型是否合法5.2、back(上一張)在瀏覽完圖片以后,為了可以選擇喜歡處理的圖片而無需每次的打開圖片,設(shè)計了上一張和下一張功能。該功能實現(xiàn)的主要思想是,先獲取已經(jīng)顯示圖片的路徑,然后從第一張圖片的路徑開始與正在顯示的圖片路徑做比較,當(dāng)二者相同時,記下i,然后執(zhí)行i=i-1,得到上一張圖片路徑,最后顯示出來。具體實現(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)顯示第一張圖片時,再執(zhí)行上一張,提示:這是第一張圖片。if i=2 msgbox(this is the first img);5.3、next(下一張) 下一站和上一張思路一樣,只是在得到顯示圖片路徑以后,執(zhí)行i=i+1。另外我還加了一個功能,就是當(dāng)現(xiàn)實到最后一張圖片是,如果再下一張就提示:這是最后一張圖片。if i=max+1 msgbox(this is the last img); 5.4、mark(添加水印)為了給自己處理過的圖像添加標(biāo)志,設(shè)計了添加水印的功能。該功能的主要思想是,圖像即為數(shù)組,如果要再圖像上添加水印,也就是用另一幅圖像的數(shù)據(jù)去覆蓋原圖像對應(yīng)部分的數(shù)據(jù),也就是對數(shù)組內(nèi)容的替換。然后就是關(guān)于水印添加的方位了,由于添加方位的不同,所要替代的范圍的不同了。基于這種思想,我的設(shè)計如下: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)了一個缺陷,我們可以為彩色圖像添加彩色水印,為灰度圖像添加灰度水印,但是當(dāng)兩個類型不一樣時就會出錯,所以如果兩張圖的類型不一致,在添加之前就要類型轉(zhuǎn)化。isrgb(a);isrgb(a);%判斷a,b圖像的類型我還發(fā)現(xiàn)其實還有可改進(jìn)的地方,前面我們添加水印的方法是完全替代,如果我們同時保留兩部分的數(shù)據(jù),就可以添加近似透明的水印,后來再查閱相關(guān)函數(shù)時發(fā)現(xiàn),imadd可以實現(xiàn)矩陣相加的功能,后來嘗試了下,效果一般,應(yīng)該還有其它更好的方法,還有待研究。5.5、magnify(以鼠標(biāo)點擊為中心放大)當(dāng)在做截圖功能的時候,我突然想到,既然截圖可以自由選擇要放大的范圍,那么多次的截圖就可以實現(xiàn)對某部分不斷地放大,所以想到了基于截圖的以鼠標(biāo)點擊為中心放大的功能。但首先要實現(xiàn)獲得鼠標(biāo)點擊坐標(biāo)的功能,在查閱過程中發(fā)現(xiàn)了x,y=ginput(1);以十字坐標(biāo)形式,當(dāng)鼠標(biāo)左鍵點擊下,返回點擊點的x,y坐標(biāo)。然后就是要實現(xiàn)以點擊一定范圍放大,也就是每次實現(xiàn)以鼠標(biāo)點擊點位中心的正方形大小截圖,通過一個循環(huán)多次截圖就可以實現(xiàn)這個功能了。具體設(shè)計的函數(shù)如下:for n=1:3 %循環(huán)次數(shù)x,y=ginput(1); %獲得點擊點坐標(biāo)z=imcrop(z1,x-400/n,y-400/n,800/n,800/n); %每次以一定大小截圖imshow(z); z1=z;%為下一次截圖的源數(shù)據(jù)end這個設(shè)計有點不足,就是每次都要點擊要放大中心點,而且一定要執(zhí)行三次,如果想要提前結(jié)束只能按下回車鍵。5.6、r90cw(順時針旋轉(zhuǎn)90度)當(dāng)初在設(shè)計順,逆時針旋轉(zhuǎn)90度的時候就在想,能不能實現(xiàn)連續(xù)的旋轉(zhuǎn),而不是每次運行都轉(zhuǎn)到同一個位置,后來發(fā)現(xiàn)只要把每次轉(zhuǎn)完的數(shù)據(jù)保存,然后以此作為下一次旋轉(zhuǎn)的源數(shù)據(jù)就可以,于是這個功能葉完成了。具體實現(xiàn)如下:y=imrotate(r,90); r=y;%把每次處理完的數(shù)據(jù)保存下來,作為下一次處理的源數(shù)據(jù)5.7、r90ccw(逆時針旋轉(zhuǎn)90度)逆時針旋轉(zhuǎn)和順時針旋轉(zhuǎn)的思路一樣,只是我們要把每次處理完的數(shù)據(jù)做為全局變量,這樣以來順時針和逆時針選擇功能都可以處理它,所以在按鈕的回調(diào)函數(shù)前加上要加上global r ,其中r是每次旋轉(zhuǎn)后的圖像矩陣。5.8、exit(退出)在設(shè)計退出的程序時,只用了clc;clear all;close (gcf);后來發(fā)現(xiàn)一個問題,就是在退出后再一次運行g(shù)ui,當(dāng)點擊任意一個功能的時候,都可以顯示出上次退出前的圖像,也就是說坐標(biāo)軸內(nèi)的圖像還沒有清楚,后來通過的一番搜索,找到了相應(yīng)的指令,cla reset,于是問題得到了解決。六、 菜單功能6.1、文件該菜單包含文件的打開,保存和退出gui的功能,這幾個功能是每一種圖像處理軟件必備的功能。6.1.1、打開為了讓使用者打開所需要的圖片,設(shè)計了打開圖像這項基本功能。通過對話框的形式來選擇文件,選擇uigetfile函數(shù)來實現(xiàn),uigetfile函數(shù)顯示一個打開文件對話框,該對話框自動列出當(dāng)前路徑下的目錄和文件。uigetfile函數(shù)的調(diào)用格式為name,path=yigetfile(), 在按下對話框中的執(zhí)行按鈕“打開”后,返回選擇的文件名和路徑,分別保存到“name”和“path”中。通過imread函數(shù)讀出圖像數(shù)據(jù),把圖像數(shù)據(jù)賦值給全局變量im,這里得到的im要聲明為全局變量,為后面每個功能所使用。6.1.2、保存對于圖像保存,可以用imwrite函數(shù),把數(shù)據(jù)i存到指定的文件夾中。這里仍然要用到uigetfile函數(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)和截圖這幾項功能,這些是對圖像的一些基本幾何變換等基本功能。6.2.1、放大在matlab中,用函數(shù)imresize來實現(xiàn)對圖像的放大或縮小。插值方法可選用三種方法,最近鄰插值,雙線性插值,雙三次插值。該函數(shù)的調(diào)用格式如下:bimresize(a,m,method)其中:參數(shù)method用于指定插值的方法,可選的值為“nearest”(最近鄰法),“bilinear”(雙線性插值)、“bicubic”(雙三次插值),缺省值為“nearest”。在實現(xiàn)放大后,顯示圖像并不能清晰地看出來圖像有什么具體的變化,但是通過查詢圖像屬性后可以發(fā)現(xiàn),圖像放大了。 6.2.2、縮小縮小的原理和放大原理是一樣的,就是對bimresizee(am,method)中參數(shù)m進(jìn)行修改,當(dāng) m小于1時實際上是縮??;同放大一樣,如果原圖質(zhì)量較好,尺寸較大,由于限制了坐標(biāo)軸大小的緣故,在功能現(xiàn)實時我們看不出變化,而實際上是有變化的。通過查看圖片屬性可以看到: 我們可以看到,放大兩倍后的圖像尺寸是原圖的0.5倍,但由于限制了坐標(biāo)軸大小的緣故,在功能現(xiàn)實時我們看不出變化,而實際上是有變化的,這和圖片放大時一樣的。6.2.3、灰度由于rgb圖像是三維圖像,所以圖像數(shù)據(jù)是一個三維數(shù)組,為了顯示灰度圖像,把三維圖像降為二維,可以只取其中的二維數(shù)據(jù),實現(xiàn)方法程序為:global im yim(:,:,1);imshow(y); 我們也可以通過調(diào)用圖像類型轉(zhuǎn)化函數(shù)來實現(xiàn):global im yrgb2gray(im);imshow(y); 這個程序只能用于rgb圖像轉(zhuǎn)換灰度圖像,當(dāng)原始圖像本來就是灰度圖像時,運行該程序時就會出錯,但是使用者在使用時有時并不知道這些,為了使該程序更加完善,應(yīng)該在使用者原先圖像時灰度圖像時使用該功能時,應(yīng)該要顯示提示類信息。所以在開始時應(yīng)該要有一個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ù)有五個參數(shù)需要輸入,為了方便用戶改變,所以這里設(shè)計一個輸入對話框,用戶通過對話框把五個參數(shù)賦值給low_in high_in,low_out high_out,gamma這五個參數(shù),如下一組命令建立了如圖所示的輸入對話框: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)行任意的亮度和對比度變化調(diào)整,有時并不事先知道參數(shù)的值要多少,也不關(guān)心,而是任意調(diào)節(jié)的,直到滿意為止。所以應(yīng)該用滑動條來調(diào)節(jié)圖像的亮度和對比度,這樣更適合用戶的使用習(xí)慣。由于imadjust函數(shù)有五個參數(shù),所以原則上需要設(shè)計五個滑動條來調(diào)節(jié)對比度,這對用戶來說顯然比較麻煩,因此在設(shè)計的時候固定其中的三個參數(shù),通過調(diào)節(jié)兩個參數(shù)的值來改變亮度和對比度?;瑒訔l設(shè)計如下圖:亮度調(diào)整的tag名為ld,取值范圍01,gamma值的tag名為gamma,取值范圍為03。獲取滑動條參數(shù)的程序如下:a=get(hobject,value); %滑動條lightp2=0 a;p3=get(hobject,value); %滑動條gammay=imadjust(im,0 0.5,p2,p3);這樣我們就可以通過調(diào)整滑動條的位置來隨時改變亮度值,得到想要的效果。6.2.5、旋轉(zhuǎn)用函數(shù)imrotate來實現(xiàn)對圖像的插值旋轉(zhuǎn)。該函數(shù)的調(diào)用格式如下: bimrotate(a,angle,method,crop)其中,參數(shù)method用于指定插值的方法,可選的值可以有三種,分別為鄰近插值,雙線性插值,雙三次插值,缺省時為鄰近插值,參數(shù)angle代表旋轉(zhuǎn)的角度。當(dāng)然我們也可以和前面一樣通過對話框的交互形式來實現(xiàn)任意角度的輸入。6.2.6、截圖在matlab中,用函數(shù)imcrop實現(xiàn)對圖像的剪切操作。該操作剪切的是圖像中的一個矩形子圖,用戶可以通過參數(shù)指定這個矩形四個頂點的坐標(biāo),也可以交互地用鼠標(biāo)選取這個矩形。imcrop函數(shù)的調(diào)用格式如下:y=imcrop(im);imshow(y);截圖的效果如下:6.3、變換 該菜單包括傅里葉變換,離散余弦變換,radon變換這三項功能,圖像的變換使圖像處理的一個重要內(nèi)容,它是許多圖像處理技術(shù)的基礎(chǔ)。為了有效和快速地對圖像進(jìn)行處理和分析,常常需要將原定義在圖像的空間的圖像以某種形式轉(zhuǎn)換到另一個空間,并利用這些空間的特有性質(zhì)更方便地進(jìn)行一些處理,最后再變換會到原空間以得到所需的效果。6.3.1、傅里葉變換為了得到圖像的頻譜圖,先要對數(shù)據(jù)進(jìn)行傅里葉變換,用fft2函數(shù)對二維數(shù)據(jù)進(jìn)行快速傅里葉變換,同時為了更好的觀察頻譜圖,需要把fft2變換后的數(shù)據(jù)進(jìn)行平移,利用fftshift函數(shù),把快速傅里葉變換的dc 組件移到光譜中心。這樣圖像能量的低頻成分將集中到頻譜中心,圖像上的邊緣、線條細(xì)節(jié)信息等高頻成分將分散在圖像頻譜的邊緣。執(zhí)行的相關(guān)程序和處理后的效果如下所示:m=fft2(x); %對圖像執(zhí)行二維傅里葉變換y=fftshift(m); %使低頻能量集中在中心位置 imshow(log(abs(y),);%使用對數(shù)使低頻部分顯示效果更明顯6.3.2、離散余弦變換傅里葉變化的一個最大問題是:它的參數(shù)都是復(fù)數(shù),在數(shù)據(jù)的描述上相當(dāng)于實數(shù)的兩倍,不易計算,因此希望有一種能達(dá)到相同功能但數(shù)據(jù)量有不大的變換,在這個思想的指導(dǎo)下,產(chǎn)生了離散余弦變換。執(zhí)行的相關(guān)程序和處理后的效果如下所示:gray=rgb2gray(im);d=dct2(gray); %對圖像進(jìn)二維行離散余弦變換axes(handles.axes2);imshow(log(abs(d),); %使用對數(shù)使低頻部分顯示效果更明顯通過變換我們可以看到,圖像的低頻能量都集中在左上角區(qū)域,向著右下角方向,頻率越來越高,這主要是以為離散余弦變換核實際上是取傅里葉變化的實部。6.3.2、radon變換radon函數(shù)計算指定方向上圖像矩陣的投影,計算一定方向上平行光束的線積分。光線間隔1個象素單位。為了表示圖像,radon變換通過圍繞圖像中心旋轉(zhuǎn)光源來從不同角度獲得圖像的平行光投影。執(zhí)行的相關(guān)程序和處理后的效果如下所示:theta=0:1:180;%對每個角度做radon變換處理r,xp=radon(im,theta);imagesc(theta,xp,r);xlabel(degrees);%為x軸做標(biāo)注colorbar;%顯示顏色條radon變換域hough變換緊密相關(guān)??梢杂胷adon函數(shù)實現(xiàn)hough變換的一種形式來找出圖像中的直線對象,執(zhí)行的相關(guān)程序和處理后的效果如下所示:im=imread(1.jpg);im=mat2gray(im);bw=edge(im);% 邊緣檢測imshow(bw);6.4、噪聲該菜單包含四種噪聲的添加,高斯噪聲,椒鹽噪聲,斑點噪聲,泊松噪聲。因此我們要對噪聲進(jìn)行研究,找到最好的去處噪聲的方法。 6.4.1、高斯噪聲所謂高斯噪聲是指它的概率密度函數(shù)服從高斯分布(即正態(tài)分布)的一類噪聲。高斯噪聲是一種隨機(jī)噪聲,它完全由其時變平均值和兩瞬時的協(xié)方差函數(shù)來確定。執(zhí)行的相關(guān)程序和處理后的效果如下所示:y=imnoise(im,gaussian,p1,p2);6.4.2、椒鹽噪聲椒鹽噪聲是由圖像傳感器,傳輸信道,解碼處理等產(chǎn)生的黑白相間的亮暗點噪聲。椒鹽噪聲往往由圖像切割引起。去除脈沖干擾級椒鹽噪聲最常用的算法是中值濾波。執(zhí)行的相關(guān)程序和處理后的效果如下所示:y=imnoise(x,salt & pepper,p1);6.4.3、斑點噪聲斑點噪聲是sar成像系統(tǒng)的一大特色,源自基本分辨單元內(nèi)地物的隨機(jī)散射,在圖像上表現(xiàn)為信號相關(guān)(如在空間上相關(guān))的小斑點,它既降低了圖像的畫面質(zhì)量,又嚴(yán)重影響圖像的自動分割、分類、目標(biāo)檢測以及其它定量專題信息的提取 。sar斑點噪聲的抑制可通過非相干多視處理,也可使用空間域濾波實現(xiàn)。執(zhí)行的相關(guān)程序和處理后的效果如下所示:y=imnoise(im,speckle,p1);6.4.4、泊松噪聲執(zhí)行的相關(guān)程序和處理后的效果如下所示: y=imnoise(im,poisson);6.5、濾波該按鈕包含了高通,低通濾波,平滑,銳化的線性和非線性濾波,大量的實驗研究發(fā)現(xiàn),由攝像機(jī)拍攝得到的圖像受離散的脈沖、椒鹽噪聲和零均值的高斯噪聲的影響較嚴(yán)重。噪聲給圖像處理帶來很多困難,對圖像分割、特征提取、圖像識別等具有直接影響。因此,實時采集的圖像需進(jìn)行濾波處理。注:對于平滑和銳化濾波都要先添加噪聲。6.5.1、高通濾波高通濾波是只對低于某一給定頻率以下的頻率成分有衰減作用,而允許這個截止頻率以上的頻率成分通過,并且沒有相位移的濾波過程。主要用來消除低頻噪聲,保留高頻部分。圖像中的邊緣或線條與圖像頻譜中的高頻分量相對應(yīng),因為采用高通濾波器讓高頻成分順利通過,可以使圖像的邊緣或線條更加清楚,從而識相圖像的銳化。執(zhí)行的相關(guān)程序和處理后的效果如下所示:6.5.2、低通濾波 圖像的邊緣以及噪聲干擾在圖像的頻域上對應(yīng)于圖像傅里葉變換中的高頻部分,而圖像的背景區(qū)則對應(yīng)于低頻部分,因此可以用頻域低通濾波法去除圖像的高頻部分,以去掉噪聲使圖像平滑。對于低通濾波器截止頻率的不同,會發(fā)生不同程度的“振鈴”現(xiàn)象,同時圖像變模糊了。截止頻率月底,濾除噪聲越徹底,高頻分量損失越嚴(yán)重,但圖像就越模糊。執(zhí)行的相關(guān)程序和處理后的效果如下所示:6.5.3、平滑線性濾波(領(lǐng)域平均法)對一些圖像進(jìn)行線性濾波可以去除圖像中的某些類型的噪聲,如采用領(lǐng)域平均法的均值濾波器就非常適用于去除通過掃描得到的圖像中的顆粒噪聲。領(lǐng)域平均法是空間域平滑噪聲技術(shù)。對于給定圖像的每個像點,取其領(lǐng)域含有m個像素,取其平均值作為處理后所得到圖像像點的灰度,用一像素領(lǐng)域內(nèi)個像素灰度平均值來代替該像素的灰度。執(zhí)行的相關(guān)程序和處理后的效果如下所示:h=ones(3,3)/9;%產(chǎn)生濾波模板并歸一化y=conv2(zs,h);%用均值模板對圖像濾波axes(handles.axes2);imshow(y,); 可以看出,領(lǐng)域平均法也平滑了圖像信號,特別是可能使圖像目標(biāo)區(qū)域的邊界變得模糊??梢宰C明,對圖像進(jìn)行領(lǐng)域平滑處理相當(dāng)于圖像信號通過一低通濾波器。6.5.4、平滑非線性濾波(中值濾波) 中值濾波是抑制噪聲的非線性處理方法。給定一個濾波窗口,對于二維圖像,窗口形狀可以使矩形,圓形及十字形等,對于位于中間位置的那個數(shù)值稱為這n個數(shù)值的中值。中值濾波的算法運算簡單,易于實現(xiàn),而且能較好地保護(hù)邊界,但有時會失掉圖像中的細(xì)線和小塊的目標(biāo)區(qū)域。執(zhí)行的相關(guān)程序和處理后的效果如下所示:y=medfilt2(zs,5,5);%用5*5的濾波窗口對圖像進(jìn)行中值濾波axes(handles.axes2);imshow(y);6.5.5、銳化線性濾波 拉氏算子比較適用于改善因為光線的漫反射造成的圖像模糊,其原理是這樣的,在攝影膠片記錄圖像的光化過程中,光點將漫反射到其它周圍區(qū)域,造成圖像模糊,不模糊圖像等于模糊圖像減去它的拉氏變換的常數(shù)倍。另外,人們還發(fā)現(xiàn),及時模糊不是由于光的漫反射造成的,對圖像進(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)拉氏算子運算的圖像,可以發(fā)現(xiàn),圖像的模糊部分得到了銳化,特別是模糊的邊緣部分得到了增強,邊界更加明顯。但是,圖像顯示清楚的地方,經(jīng)濾波后發(fā)生了失真,這也是拉氏算子增強的一大缺點。6.5.6、銳化非線性濾波 對一幅圖像施加梯度模算子,可以增強灰度變化的幅度,因此我們可以采用梯度模算子作為圖像的銳化算子,而且梯度模算子還具有方向同性和位移不變性。sobel算子的特點是對稱的一階差分,對中心加權(quán),具有一定的平滑作用。執(zhí)行的相關(guān)程序和處理后的效果如下所示:h=fspecial(sobel);%梯度模算子axes(handles.axes2);j=filter2(h,im);%濾波imshow(j);6.6、直方圖統(tǒng)計該按鈕包含了rgb三基色的直方圖統(tǒng)計功能,灰度直方圖是表示一幅圖像灰度分布情況的統(tǒng)計表。直方圖的橫坐標(biāo)是灰度級,縱坐標(biāo)是具有該灰度級的像素個數(shù)或出現(xiàn)這個灰度級的概率。所以說,直方圖統(tǒng)計提供了原圖的灰度值分布情況,也可說給出了一幅圖所有灰度值的整體描述。我們可以根據(jù)一幅圖的灰度直方圖情況來判斷其質(zhì)量,并可以通過一定的變換使原來偏暗或偏亮的圖像變換到動態(tài)范圍正常的區(qū)域,如直方圖的規(guī)定化。6.6.1、r直方圖灰度和彩色圖形都有r直方圖。執(zhí)行的相關(guān)程序和處理后的效果如下所示: x=imhist(im(:,:,1);%統(tǒng)計圖片每個灰度值個數(shù) x1=x(1:10:256);horz=1:10:256;bar(horz,x1);%柱狀圖顯示6.6.2、g直方圖對于彩色圖形沒有g(shù)直方圖。執(zhí)行的相關(guān)程序和處理后的效果如下所示: x=imhist(im(:,:,2);%統(tǒng)計圖片每個灰度值個數(shù) x1=x(1:10:256);horz=1:10:256;bar(horz,x1);%柱狀圖顯示6.6.3、b直方圖對于彩色圖形沒有b直方圖。執(zhí)行的相關(guān)程序和處理后的效果如下所示: x=imhist(im(:,:,3);%統(tǒng)計圖片每個灰度值個數(shù) x1=x(1:10:256);horz=1:10:256;bar(horz,x1);%柱狀圖顯示6.7、圖像增強 該菜單包含灰度圖像的偽彩色增強,彩色圖像的真彩色增強,圖像的直方圖均衡,彩色圖像的ntsc,ycbcr,hsv顏色模型轉(zhuǎn)換。在圖像的生產(chǎn),傳輸或變換的過程中,由于多種因素的影響,總要造成圖像質(zhì)量的下降,這就需要進(jìn)行圖像增強,改善圖像的視覺效果,提高圖像的清晰度。6.7.1、偽彩色增強對于灰度圖像,人眼分辨的灰度級只有十幾到二十幾,而對不同的亮度和色彩圖像則可以達(dá)到幾百甚至上千,因此偽彩色增強是將一個波段或單一的黑白圖像變換為彩色圖像,從而把人眼不能區(qū)分的微小的灰度差別顯示為明顯的色彩差異,更便于解譯和提取有用信息。偽彩色增強的方法主要有以下三種:亮度切割技術(shù),灰度彩色變換,頻域濾波法。 我采用的是亮度切割技術(shù),亮度切割技術(shù)是偽彩色增強中最簡單的一種方法,它是對圖像亮度范圍進(jìn)行分割,使一定亮度間隔對應(yīng)于某一顏色。對于切割平面以下的分配一中顏色,平面以上的再分配一種顏色。這樣,便可以把一幅灰度圖像變成一幅偽彩色圖像,此法比較直觀簡單,缺點使變換出的彩色數(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)色 %對于其它顏色的變換思路同上,最后顯示偽彩色變換后的圖像b imshow(b);6.7.2、真彩色增強真彩色增強時從彩色到彩色的一種變換。通過一定的映射函數(shù)變換成新的三基色分量,彩色合成使得增強圖像中各目標(biāo)呈現(xiàn)出與原圖像不同的彩色。通過真彩色增強我們可以達(dá)到變換圖像引起人們的特別關(guān)注,以及通過人眼對不同顏色的靈敏度的不同,使景物呈現(xiàn)出與人眼色覺相匹配的顏色,以提高人眼對目標(biāo)的分辨力。執(zhí)行的相關(guān)程序和處理后的效果如下所示:im(:,:,1)=immultiply(im(:,:,1),0.3);%對r基色每個元素乘以0.3im(:,:,2)=immultiply(im(:,:,2),0.2);%對g基色每個元素乘以0.2im(:,:,3)=immultiply(im(:,:,3),0.5);%對b基色每個元素乘以0.5axes(handles.axes2);imshow(im);%最后顯示處理變換后的rgb圖像6.7.3、直方圖均衡如果獲得的一幅圖像的直方圖效果不理想,可以通過直方圖均衡化處理技術(shù)作適當(dāng)?shù)男薷?,實現(xiàn)圖像清晰的目的。這種方法的基本思想是對原始圖像中的像素灰度做某種映射變換,是變換后的圖像灰度概率密度是均勻分布的。執(zhí)行的相關(guān)程序和處理后的效果如下所示:if isrgb(im) %對灰度圖像和彩色圖像分別處理 a=histeq(im(:,:,1); %對每一種基色直方圖均衡 b=histeq(im(:,:,2); c=histeq(im(:,:,3); k(:,:,1)=a; k(:,:,2)=b; k(:,:,3)=c; imshow(k); elseh=histeq(im); %對灰度圖像直方圖均衡 imshow(h);end通過變換,圖像灰度的動態(tài)范圍得到了增加,從而提高圖像的對比度,但是他是以減少圖像的灰度等級為代價的,而且均衡化在增加圖像反差的同時,也增加了圖像的顆粒感,感覺好像圖像時由許多細(xì)小顆粒組成的。6.7.4、ntsc顏色模型ntsc模型廣泛應(yīng)用于美國等國家的電視信號,它的特點是信號的強度信息相分離,同一個信號可以方便地同時表示彩色圖像和黑白圖像。在ntsc格式中,圖像由三個分量表示:亮度(luminance)用y表示,色度(hue)用i表示,飽和度(saturation)用q表示。第一個分量y,表示灰度信息,后兩個分量表示彩色信息。因此ntsc模型使用的是yiq色彩坐標(biāo)軸,ntsc模型的色彩空間又稱yiq空間。通過執(zhí)行相關(guān)函數(shù)我們可以分析彩色圖像的每一個分量的情況。執(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ù)字電視等消費類視頻產(chǎn)品中,常用的色彩編碼方案是ycbcr,其中y是指亮度分量,cb指藍(lán)色色度分量,而cr指紅色色度分量。人的肉眼對視頻的y分量更敏感,因此在通過對色度分量進(jìn)行子采樣來減少色度分量后,肉眼將察覺不到的圖像質(zhì)量的變化。通過函數(shù)變換我們可以比較兩種顏色的差異。執(zhí)行的相關(guān)程序和處理后的效果如下所示: y=rgb2ycbcr(im);imshow(y);6.7.6、hsv顏色模型hsv(hue,saturation,value)顏色空間的模型對應(yīng)于圓柱坐標(biāo)系中的一個圓錐形子集,圓錐的頂面對應(yīng)于v=1. 它包含rgb模型中的r=1,g=1,b=1 三個面,所代表的顏色較亮。色彩h由繞v軸的旋轉(zhuǎn)角給定。紅色對應(yīng)于 角度0 ,綠色對應(yīng)于角度120,藍(lán)色對應(yīng)于角度240。在hsv顏色模型中,每一種顏色和它的補色相差180 。 飽和度s取值從0到1,所以圓錐頂面的半徑為。在圓錐的頂點(即原點)處,v=0,h和s無定義, 代表黑色。圓錐的頂面中心處s=0,v=1,h無定義,代表白色。通過函數(shù)變換我們可以比較兩種顏色的差異。執(zhí)行的相關(guān)程序和處理后的效果如下所示:y=rgb2hsv(im);imshow(y);6.8、閾值分割一幅圖像包括目標(biāo),背景和噪聲,怎樣從灰度圖像中取出對象物?灰度閾值法就是把圖像的灰度分成不同的等級,然后用設(shè)置灰度閾值的方法確定有意義的區(qū)域或欲分割物體的邊界。設(shè)定某一閾值t,對圖像進(jìn)行二值化處理。執(zhí)行的相關(guān)程序和處理后的效果如下所示:global imi=im;i=double(i(:,:,1);%只對灰度進(jìn)行處理fxy=zeros(1,256);m,n=size(i);for i=1:m %統(tǒng)計每個灰度值的個數(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è)置個對話框,選擇閾值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.這兩個問題是關(guān)于矩陣和數(shù)組的乘法運算。矩陣的乘法運算表達(dá)式為a*b,表示矩陣相乘,其中矩陣a的列數(shù)必須等于矩陣b的行數(shù);數(shù)組的乘法運算表達(dá)式為a.*b,運算符為.*,表示數(shù)組a和b中對應(yīng)的元素相乘,a和b數(shù)組的大小必須相同。2)? subscripted assignment dimension mismatch.錯誤的原因是矩陣的維數(shù)沒有匹配,不同類型的圖片維數(shù)不相同。對于灰度圖像,它是m*n二維的;對于彩色圖像,它是m*n*k三維的。所以在使用函數(shù)之前要明確它所支持的圖像類型,我們可以通過rgb2gray或gray2rgb這一類函數(shù)將圖片轉(zhuǎn)換為所支持的類型,我們也可以通過相應(yīng)函數(shù)來判斷矩陣的維數(shù),matlab中ndims(cdata)就支持這種功能,它返回值為正整數(shù)n,n代表它的維數(shù)。3)在實現(xiàn)圖像放大,縮小,亮度調(diào)整等功能時,為了方便修改,設(shè)置對話框輸入,但從對話框輸入的數(shù)其實是字符,并不是真正的整型數(shù)值,所以如果沒有對字符轉(zhuǎn)數(shù)值變化,就會得到錯誤的結(jié)果,舉個簡單的例子:a=2; b=2; a*bans = 100得到的100并不是我們所想要的4,之所以還會出結(jié)果是因為,字符2對應(yīng)的ascii碼值為50,而matlab有支持這種算法,所以會得到100的結(jié)果。正確的做法應(yīng)該是這樣:a=2; a=str2num(s); b=2; a*bans = 4所以說我們在對數(shù)據(jù)做處理的時候,一定要分清出它的類型,以免到時候查不出錯誤。4)關(guān)于全局變量的設(shè)置,打開了一張圖片,為了能供每個功能做相應(yīng)的處理,就得把圖片矩陣的屬性設(shè)置為global im,這樣做以后卻只能實現(xiàn)對源圖像做處理,如果要對處理過后的圖像再做處理,我們就要把處理完后的新圖像矩陣賦給源圖像,im=y,這樣就可以實現(xiàn)每次處理的對象都為上次處理完的圖像了。5)關(guān)于句柄的操作,在設(shè)置滑動條來改變圖像的亮度是,雖然編譯沒有出錯,但是卻實現(xiàn)不了亮度的變化,這是因為沒有得到滑動條的句柄。在gui界面,雙擊相應(yīng)的按鈕或是滑動條這些元件,都可以得到property inspector(屬性面板),里面有各種關(guān)于這個元件的信息,我們可以在這個界面直接修改,也可以通過函
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 22453-2025激光用非線性光學(xué)晶體元件性能測量方法
- GB/T 45525.2-2025納米技術(shù)納米發(fā)電機(jī)第2部分:摩擦納米發(fā)電機(jī)電性能測試方法
- 地下水水文地質(zhì)工程地質(zhì)管理重點基礎(chǔ)知識點
- 《課件英文》課件
- 《物業(yè)管理招標(biāo)投標(biāo)》課件
- 民房變賣協(xié)議書
- 急救知識培訓(xùn)教材
- 借款合同延期還款合同
- 水稻飛防協(xié)議書
- 初級會計培訓(xùn)宣傳
- 山東省煙臺市、德州市、東營市三市東營2025年高考適應(yīng)性考試煙臺德州東營二模英語試卷+答案
- DL∕T 2447-2021 水電站防水淹廠房安全檢查技術(shù)規(guī)程
- 真假識別手冊
- 新活素 病例分享課件
- 人音版三年級下冊音樂《搖船調(diào)》課件
- 動脈采血技術(shù)培訓(xùn)課件
- 畢業(yè)論文-顎式破碎機(jī)結(jié)構(gòu)設(shè)計
- 存貨質(zhì)押貸款業(yè)務(wù)管理辦法
- 接觸網(wǎng)平面設(shè)計
- 液壓系統(tǒng)課件(完整)課件
- WF-PRM-102便攜式γ劑量率儀使用說明書
評論
0/150
提交評論