基于matlab的數(shù)字圖像處理畢業(yè)設(shè)計_第1頁
基于matlab的數(shù)字圖像處理畢業(yè)設(shè)計_第2頁
基于matlab的數(shù)字圖像處理畢業(yè)設(shè)計_第3頁
基于matlab的數(shù)字圖像處理畢業(yè)設(shè)計_第4頁
基于matlab的數(shù)字圖像處理畢業(yè)設(shè)計_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、學(xué)校代碼: 10128學(xué) 號:20121020數(shù)字圖像處理課程設(shè)計 題 目: 基于matlab的數(shù)字圖像處理 學(xué)生姓名: 龐國英 學(xué) 院: 信息工程學(xué)院 專 業(yè): 電子信息工程 班 級: 電子12-2 指導(dǎo)教師: 呂芳 韓建峰 楊玉蘭 黎玉玲 2015 年 12 月 28 日目 錄一、需求分析- 2 -1.1課程設(shè)計目的- 2 -1.2課程設(shè)計名稱及內(nèi)容- 2 -1.3任務(wù)和要求- 2 -二、算法設(shè)計- 3 -2.1設(shè)計思想:- 3 -2.2 算法思想:- 3 -2.2.1傅里葉變換- 3 -2.2.2離散余弦變換- 4 -2.2.3小波變換- 4 -2.2.4圖像銳化算法- 6 -2.2.5

2、 dct壓縮- 8 -三、源代碼及處理結(jié)果- 8 -3.1正逆傅里葉變換- 8 -3.2正逆快速傅里葉變換- 9 -3.3離散余弦變換- 12 -3.4數(shù)字圖像直方圖的統(tǒng)計及繪制- 13 -3.5小波變換- 16 -3.6圖像銳化算法- 17 -3.7 dct壓縮- 21 -四、心得體會- 23 -參考文獻- 23 -一、需求分析1.1課程設(shè)計目的通過本課程設(shè)計使學(xué)生了解數(shù)字圖像的基本概念,掌握數(shù)字圖像處理的基本內(nèi)容,如圖像點運算、幾何變換、增強處理、圖像復(fù)原、邊緣檢測以及圖像壓縮等的基本原理和matlab實現(xiàn)方法。通過本次課程設(shè)計,讓學(xué)生掌握如何學(xué)習(xí)一門語言,如何進行資料查閱搜集,如何自己解

3、決問題等方法,養(yǎng)成良好的學(xué)習(xí)習(xí)慣。擴展理論知識,培養(yǎng)學(xué)生的綜合設(shè)計能力。1.2課程設(shè)計名稱及內(nèi)容1.2.1 圖像處理基本功能1)數(shù)字圖像的變換:普通傅里葉變換(ft)與逆變換(ift)、快速傅里葉變換(fft)與逆變換(ifft)、離散余弦變換(dct),小波變換。2) 數(shù)字圖像直方圖的統(tǒng)計及繪制等;3)基于matlab的圖像平滑算法實現(xiàn)及應(yīng)用1.2.2 圖像處理綜合功能1) 圖像復(fù)原程序設(shè)計l 創(chuàng)建一個仿真運動/均值模糊psf來模糊一幅圖像(圖像自選)。l 針對退化設(shè)計出復(fù)原濾波器,對退化圖像進行復(fù)原(復(fù)原的方法自定)。l 對退化圖像進行復(fù)原,顯示復(fù)原前后圖像,對復(fù)原結(jié)果進行分析,并評價復(fù)原

4、算法。2) 給定a,b,c,d概率,進行huffman編碼,要求顯示原圖像、壓縮后圖像的文件大小、壓縮比;或采用小波變換進行編碼1.3任務(wù)和要求1、預(yù)習(xí):按要求學(xué)生可根據(jù)自己的情況預(yù)習(xí)或熟悉所用的語言,搜集資料。2、分析與設(shè)計:根據(jù)選定任務(wù)及搜集的資料設(shè)計實現(xiàn)方法,確定圖像處理算法。3、程序設(shè)計:運用掌握的語言,編寫程序,實現(xiàn)所設(shè)計的功能,需要在程序書寫時做適當(dāng)?shù)淖⑨尅?、調(diào)試與測試:自行調(diào)試程序,同學(xué)之間交叉測試程序,并記錄測試情況。5、驗收與評分:指導(dǎo)教師對每個學(xué)生的程序進行綜合驗收,結(jié)合設(shè)計報告,根據(jù)課程設(shè)計成績評定方法評出成績。 二、算法設(shè)計2.1設(shè)計思想:數(shù)字圖像處理(digital

5、 image processing)又稱為計算機圖像處理,它是指將圖像信號轉(zhuǎn)換成數(shù)字信號并利用計算機對其進行處理的過程。是通過計算機對圖像進行去除噪聲、增強、復(fù)原、分割、提取特征等處理的方法和技術(shù)。2.2 算法思想:2.2.1傅里葉變換傅里葉變換是可分離和正交變換中的一個特例,對圖像的傅里葉變換將圖像從圖像空間變換到頻率空間,從而可利用傅里葉頻譜特性進行圖像處理。從20世紀(jì)60年代傅里葉變換的快速算法提出來以后,傅里葉變換在信號處理和圖像處理中都得到了廣泛的使用。傅立葉變換是數(shù)字圖像處理中應(yīng)用最廣的一種變換,其中圖像增強、圖像復(fù)原和圖像分析與描述等,每一類處理方法都要用到圖像變換,尤其是圖像的

6、傅立葉變換。離散傅立葉(fourier)變換的定義:二維離散傅立葉變換(dft)為:逆變換為:式中, 在dft變換對中, 稱為離散信號 的頻譜,而 稱為幅度譜, 為相位角,功率譜為頻譜的平方,它們之間的關(guān)系為:圖像的傅立葉變換有快速算法。2.2.2離散余弦變換離散余弦變換(discrete cosine transform,dct)對于二維余弦變換,其離散形式如式(4)所示,逆變換如式(5)所示: (4) 式中, (5)在matlab中,采用dct2和idct2分別進行二維dct變換和二維dct逆變換。二維dct常用于信號和圖像處理,典型應(yīng)用是對靜止圖像和運動圖像進行性能優(yōu)良的有損數(shù)據(jù)壓縮。在

7、靜止圖像編碼標(biāo)準(zhǔn)jpeg、運動圖像編碼標(biāo)準(zhǔn)mjpeg和mpeg等標(biāo)準(zhǔn)中都使用了8*8塊的離散余弦變換,并將結(jié)果進行量化之后進行熵編碼。dct具有很強的能量集中在頻譜的低頻部分的特性,而且當(dāng)信號具有接近馬爾科夫過程(markov processes)的統(tǒng)計特性時,dct的去相關(guān)性接近于具有最優(yōu)去相關(guān)性的k-l變換(karhunen-loeve變換)的性能。另外,改進的離散余弦變換(modified discrete cosine transform,mdct)對交疊的數(shù)據(jù)進行dct,有助于避免由于區(qū)塊邊界所產(chǎn)生的多余數(shù)據(jù),被用在高級音頻編碼(advanced audio coding,aac)、

8、ogg vorbis、ac3和mp3音頻壓縮中。2.2.3小波變換二維離散小波變換(d discrete space wavelet transform,ddswt) 對于二維小波變換,其離散形式如式(6)所示;逆變換如式(7)所示: (6)式中,和分別函數(shù)在軸上的,平移量。 (7)類似地,可以定義二維離散小波變換逼近,并采用mallat二維快速算法求解。與dft類似,可分離二維小波變換最終可轉(zhuǎn)換為兩次一維小波變換。對圖像進行小波變換的matlab常用函數(shù)有: 對圖像進行一層二維小波分解,常見形式為: ca,ch,cv,cd=dwt2(x,wname)式中,x為圖像矩陣;wname是使用的小波

9、基函數(shù)名稱,如可選擇雙正交樣條小波基函數(shù),形式為biornr.nd。 查詢使用的小波基函數(shù)的信息,使用形式為: waveinfo(wname)式中,小波基名稱wname可選用haar(哈爾小波)、db(daubechies 小波)、bior(雙正交樣條小波)等。例如,在命令行狀態(tài)下鍵入wavainfo(bior)進行查詢雙正交樣條小波,可知r表示reconstruction(重建),d表示decomposition(分解),n表示相應(yīng)fir濾波器的階數(shù);ca、ch、cv、cd分別是輸入矩陣x小波分解的近似系數(shù)矩陣、水平細(xì)節(jié)系數(shù)、垂直細(xì)節(jié)系數(shù)和對角線細(xì)節(jié)系數(shù)。 對二維小波分解的圖像進行各種分量的

10、重構(gòu),常見函數(shù)形式為: y=upcoef2(o,x,wname,n)式中,x是分解后的細(xì)節(jié)信號,y是重構(gòu)的細(xì)節(jié)信號分量;n表示對矩陣x的系數(shù)進行重建的步驟數(shù),即重構(gòu)的層數(shù),默認(rèn)值為1。o是細(xì)節(jié)信號的類型。如果o=a,則表示對信號的近似系數(shù)進行重建;否則,如果o=h、v或d,則分別對水平、垂直或?qū)蔷€細(xì)節(jié)進行重建。 對應(yīng)上述的一層二維小波變換dwt2函數(shù),進行一層二維小波變換逆變換,常見形式為: x=idwt2(ca,ch,cv,cd,wname)idwt2函數(shù)采用wname所指示的小波、已重建的基于近似矩陣ca,以及水平細(xì)節(jié)ch、垂直細(xì)節(jié)cv和對角線細(xì)節(jié)cd計算原圖像矩陣x。 對重構(gòu)的圖像進行

11、量化編碼,常見函數(shù)形式為: y=wcodemat(x,nbcodes,opt,absol)式中,x為待進行量化編碼的矩陣,y為編碼矩陣。在編碼中,把矩陣x中元素絕對值最大的作為nbcodes(整數(shù)),絕對值最小的作為1,其他元素依其絕對值的大小在1與nbcodes中排列。當(dāng)opt為row時,做行編碼;當(dāng)opt為col時,做列編碼;當(dāng)opt為mat時,做全局編碼,即把整個矩陣中元素絕對值最大的元素作為nbcodes,最小的作為1.當(dāng)absol為0時,該函數(shù)返回輸入矩陣x的一個編碼版本,當(dāng)absol非0時,返回x的絕對值。2.2.4圖像銳化算法在圖像增強過程中,通常利用各類圖像平滑算法消除噪聲,圖

12、像的常見噪聲主要有加性噪聲、乘性噪聲和量化噪聲等。一般來說,圖像的能量主要集中在其低頻部分,噪聲所在的頻段主要在高頻段,同時圖像邊緣信息也主要集中在其高頻部分。這將導(dǎo)致原始圖像在平滑處理之后,圖像邊緣和圖像輪廓模糊的情況出現(xiàn)。為了減少這類不利效果的影響,就需要利用圖像銳化技術(shù),使圖像的邊緣變得清晰。圖像銳化處理的目的是為了使圖像的邊緣、輪廓線以及圖像的細(xì)節(jié)變得清晰,經(jīng)過平滑的圖像變得模糊的根本原因是因為圖像受到了平均或積分運算,因此可以對其進行逆運算(如微分運算)就可以使圖像變得清晰。微分運算是求信號的變化率,由傅立葉變換的微分性質(zhì)可知,微分運算具有較強高頻分量作用。從頻率域來考慮,圖像模糊的

13、實質(zhì)是因為其高頻分量被衰減,因此可以用高通濾波器來使圖像清晰。但要注意能夠進行銳化處理的圖像必須有較高的性噪比,否則銳化后圖像性噪比反而更低,從而使得噪聲增加的比信號還要多,因此一般是先去除或減輕噪聲后再進行銳化處理。圖像銳化的方法分為高通濾波和空域微分法。圖像的邊緣或線條的細(xì)節(jié)(邊緣)部分 與圖像頻譜的高頻分量相對應(yīng),因此采用高通濾波讓高頻分量順利通過,并適當(dāng)抑制中低頻分量,是圖像的細(xì)節(jié)變得清楚,實現(xiàn)圖像的銳化,由于高通濾波我們在前面頻域濾波已經(jīng)講過,所以這里主要講空域的方法微分法。 一階微分運算一階微分主要指梯度模運算,圖像的梯度模值包含了邊界及細(xì)節(jié)信息。梯度模算子用于計算梯度模值,通常認(rèn)

14、為它是邊界提取算子,具有極值性、位移不變性和旋轉(zhuǎn)不變性。圖像在點處的梯度定義為一個二維列矢量:梯度大的幅值即模值,為: 梯度的方向在最大變化率方向上,方向角可表示為: 對于離散函數(shù)也有相應(yīng)的概念和公式,只是用差分代替微分。差分可取為后向差分,前向差分。在x,y方向上的一階向后差分分別定義為:梯度定義為:其模和方向分別為: 在實際應(yīng)用中,梯度的模還有很多近似式,如使用x,y方向上差分絕對值替代模來度量梯度的模(幅值)就是最大變化率方向的單位距離所增加的量。由梯度的計算可知,在圖像灰度變化較大的邊沿區(qū)域其梯度值大,在灰度變化平緩的區(qū)域梯度值較小,而在灰度均勻的區(qū)域其梯度值為零。我們根據(jù)得到的梯度值

15、來返回像素的值,如將梯度值大的像素設(shè)置成白色,梯度值小的設(shè)置為黑色,這樣就可以將邊緣提取出來了,或者是加強梯度值大的像素灰度值就可以突出細(xì)節(jié)了達(dá)到了銳化的目的。2.2.5 dct壓縮圖像壓縮主要目的是為了節(jié)省存儲空間,增加傳輸速度。圖像壓縮的理想標(biāo)準(zhǔn)是信息丟失最少,壓縮比例最大。不損失圖像質(zhì)量的壓縮稱為無損壓縮,無損壓縮不可能達(dá)到很高的壓縮比;損失圖像質(zhì)量的壓縮稱為有損壓縮,高的壓縮比是以犧牲圖像質(zhì)量為代價的。壓縮的實現(xiàn)方法是對圖像重新進行編碼,希望用更少的數(shù)據(jù)表示圖像。 信息的冗余量有許多種,如空間冗余,時間冗余,結(jié)構(gòu)冗余,知識冗余,視覺冗余等,數(shù)據(jù)壓縮實質(zhì)上是減少這些冗余量。高效編碼的主要

16、方法是盡可能去除圖像中的冗余成分,從而以最小的碼元包含最大的圖像信息。三、源代碼及處理結(jié)果 3.1正逆傅里葉變換t=imread(e:pgy.jpg);t=rgb2gray(t);figure,subplot(2,1,1)imshow(t);title(原灰度圖象);m,n=size(t);m=zeros(m,m);n=zeros(n,n);for i=1:m for k=1:m m(i,k)=exp(2*pi*i*k*(-j)/m); endend for k=1:n for i=1:n n(k,i)=exp(2*pi*i*k*(-j)/n); endendt=double(t);t = m

17、*t*n;ni=n;mi=m;ti = mi*t*ni/(m*n);subplot(2,2,3),imshow(uint8(t)title(傅里葉變換頻譜);subplot(2,2,4),imshow(uint8(ti);title(傅里葉逆變換圖像);3.2正逆快速傅里葉變換i=imread(e:/pgy.jpg); %讀入圖像subplot(1,2,1),imshow(i); %在位置1顯示圖像title(原始圖像);f=rgb2gray(i);f1=fft2(f); %計算二維傅立葉變換subplot(1,2,2),imshow(f1); %顯示二維傅立葉變換后的圖像title(二維離散

18、傅里葉變換后的頻譜);figure,subplot(2,2,1),imshow(log(abs(f1)+1),0 10); %顯示對數(shù)變換后的頻譜圖title(圖像的頻譜圖);f2=fftshift(f1); %將直流分量移到頻譜圖的中心subplot(2,2,2),imshow(log(abs(f2)+1),0 10);%顯示對數(shù)變換后中心化的頻譜圖title(中心化的頻譜圖);f3=ifft2(f1); %計算傅立葉變換的逆變換subplot(2,2,3),imshow(uint8(f3); %重新顯示圖像,類似于imread(pout.tif)title(傅立葉逆變換);subplot(

19、2,2,4),imshow(f);title(灰度圖像); 3.3離散余弦變換rgb=imread(e:/pgy.jpg);i=rgb2gray(rgb);%真彩色圖像轉(zhuǎn)換成灰度圖像subplot(2,2,1),imshow(rgb); %顯示原圖像title(原始圖像);c1=dct2(i); %對圖像做dct變換subplot(2,2,2),imshow(log(abs(c1),),colormap(jet(64),colorbartitle(圖像大部分能量集中在上左角);c2=fftshift(c1); %將直流分量移到頻譜圖的中心subplot(2,2,3),imshow(log(ab

20、s(c2)+1,0 10); %顯示dct變換結(jié)果title(dct系數(shù));c3=idct2(c1); %對矩陣c1做dct逆變換subplot(2,2,4),imshow(uint8(c3); %顯示逆變換后的結(jié)果title(灰度圖像);3.4數(shù)字圖像直方圖的統(tǒng)計及繪制clear all%一,圖像的預(yù)處理,讀入彩色圖像將其灰度化ps=imread(e:pgy.jpg);%讀入jpg彩色圖像文件subplot(1,2,1);imshow(ps) %顯示出來 title(輸入的彩色jpg圖像)imwrite(rgb2gray(ps),picsamplegray.bmp); %將彩色圖片灰度化并保

21、存ps=rgb2gray(ps);%灰度化后的數(shù)據(jù)存入數(shù)組subplot(1,2,2);imshow(ps);title(灰度圖像);%二,繪制直方圖m,n=size(ps); %測量圖像尺寸參數(shù)gp=zeros(1,256); %預(yù)創(chuàng)建存放灰度出現(xiàn)概率的向量for k=0:255 gp(k+1)=length(find(ps=k)/(m*n); %計算每級灰度出現(xiàn)的概率,將其存入gp中相應(yīng)位置endfiguresubplot(2,2,1);bar(0:255,gp,g) %繪制直方圖title(原圖像直方圖)xlabel(灰度值)ylabel(出現(xiàn)概率)%三,直方圖均衡化s1=zeros(1

22、,256);for i=1:256 for j=1:i s1(i)=gp(j)+s1(i); %計算sk endends2=round(s1*256)+0.5); %將sk歸到相近級的灰度for i=1:256 gpeq(i)=sum(gp(find(s2=i); %計算現(xiàn)有每個灰度級出現(xiàn)的概率endsubplot(2,2,2),bar(0:255,gpeq,b) %顯示均衡化后的直方圖title(均衡化后的直方圖)xlabel(灰度值)ylabel(出現(xiàn)概率)%四,圖像均衡化pa=ps;for i=0:255 pa(find(ps=i)=s2(i+1); %將各個像素歸一化后的灰度值賦給這個

23、像素endsubplot(2,2,3);imshow(pa) %顯示均衡化后的圖像 title(均衡化后圖像)imwrite(pa,picequal.bmp);subplot(2,2,4),plot(0:255,s2,r)3.5小波變換i=imread(e:/pgy.jpg);x=rgb2gray(i); ca,ch,cv,cd=dwt2(x,bior3.7);a=upcoef2(a,ca,bior3.7,1);h=upcoef2(h,ch,bior3.7,1);v=upcoef2(v,cv,bior3.7,1);d=upcoef2(d,cd,bior3.7,1);figure subplot

24、(221),image(wcodemat(a,192); %將矩陣顯示為圖像title(近似細(xì)節(jié)系數(shù) a) %顯示圖像的圖頭、標(biāo)題subplot(222),image(wcodemat(h,192);title(水平細(xì)節(jié)系數(shù) h)subplot(223),image(wcodemat(v,192);title(垂直細(xì)節(jié)系數(shù) v)subplot(224),image(wcodemat(d,192);title(對角細(xì)節(jié)系數(shù) d)x=idwt2(ca,ch,cv,cd,bior3.7);imshow(d,);3.6圖像銳化算法ima=imread(e:/pgy.jpg);%讀入圖像if isrgb

25、(ima) ima=rgb2gray(ima);%如果是彩色圖像,則轉(zhuǎn)為灰度圖像 endima=double(ima);bw1 = edge(ima,sobel); %sobel算子銳化figure;subplot(121);imshow(uint8(ima);title(原始圖像);%圖像顯示subplot(122);imshow(bw1);title(sobel算子銳化);bw2 = edge(ima,prewitt);%prewitt算子銳化figure;subplot(121);imshow(uint8(ima);title(原始圖像);subplot(122);imshow(bw2)

26、;title(prewitt算子銳化);bw3 = edge(ima,roberts);%roberts算子銳化figure;subplot(121);imshow(uint8(ima);title(原始圖像);subplot(122);imshow(bw3);title(roberts算子銳化);bw4 = edge(ima,log);%log算子銳化figure;subplot(121);imshow(uint8(ima);title(原始圖像);subplot(122);imshow(bw4);title(log算子銳化);bw5 = edge(ima,canny);%canny算子銳化

27、figure;subplot(121);imshow(uint8(ima);title(原始圖像);subplot(122);imshow(bw5);title(canny算子銳化);%edge取邊緣函數(shù)%經(jīng)過算子銳化取邊緣%直接調(diào)用函數(shù)不能知道每種算子的銳化類型3.7dct壓縮 i = imread(e:/pgy.jpg); %圖像的讀入 i=rgb2gray(i); i = im2double(i);%圖片存儲類型轉(zhuǎn)換 disp(壓縮前圖像的大小:);%顯示矩陣% whos(i) t = dctmtx(8);%離散余弦變換矩陣 b = blkproc(i,8 8,p1*x*p2,t,t);

28、%對源圖像進行dct變換 mask = 1 1 1 1 1 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ; b2 = blkproc(b,8 8,p1.*x,mask);%數(shù)據(jù)壓縮,丟棄右下角高頻數(shù)據(jù) i2 = blkproc(b2,8 8,p1*x*p2,t,t);%進行反dct變換 subplot(1, 2, 1); imshow(i, );title(原圖像); subplot(1, 2, 2); imshow(i2, );title(壓縮后圖像); disp(壓縮后的圖像大?。?; whos(i2) imwrite(i,y.jpg);imwrite(i2,c.jpg); y1=imfinfo(y.jpg);c=imfinfo(c.jpg); y_size=y1.filesizey_size=c.filesize y2=c.filesize/y1.files壓縮前圖像的大小: name size by

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論