版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 課程任務(wù)設(shè)計(jì)書(shū)</b></p><p><b> 題目:圖像處理</b></p><p><b> 課程設(shè)計(jì)目的:</b></p><p> 編程實(shí)現(xiàn)一幅圖像的平移、鏡像、旋轉(zhuǎn)、縮小和放大。</p><p> 課程設(shè)計(jì)內(nèi)容和要求:</
2、p><p> 給出所用算法的理論依據(jù)和必要的推導(dǎo)過(guò)程;給出原始圖像和處理后的圖像。</p><p><b> 初始條件:</b></p><p> 在matlab平臺(tái)上實(shí)現(xiàn)功能</p><p><b> 時(shí)間安排:</b></p><p> 指導(dǎo)教師簽名:
3、 年 月 日</p><p> 系主任(或責(zé)任教師)簽名: 年 月 日</p><p><b> 目錄</b></p><p><b> 摘要I</b></p><p> AbstractII<
4、/p><p> 1MATLAB簡(jiǎn)介1</p><p> 1.1 MATLAB說(shuō)明1</p><p> 1.2 MATLAB的語(yǔ)言特點(diǎn)1</p><p> 1.3 MATLAB系統(tǒng)構(gòu)成1</p><p><b> 2.1整體原理3</b></p><p>
5、2.2各部分原理3</p><p> 2.2.1平移變換3</p><p> 2.2.2鏡像翻轉(zhuǎn)3</p><p> 1.2.3旋轉(zhuǎn)變換4</p><p> 1.2.4縮小和放大4</p><p> 3.1原始圖像選擇讀取6</p><p> 3.2 平移變換7<
6、/p><p> 3.3 鏡像翻轉(zhuǎn)7</p><p> 3.4 旋轉(zhuǎn)變換9</p><p> 3.5 縮小和放大11</p><p><b> 4總結(jié)與分析15</b></p><p><b> 5心得體會(huì)16</b></p><p>&
7、lt;b> 6參考文獻(xiàn)17</b></p><p><b> 附錄18</b></p><p><b> 摘要</b></p><p> MATLAB自產(chǎn)生之日起就具有方便的數(shù)據(jù)可視化功能,以將向量和矩陣用圖形表現(xiàn)出來(lái),并且可以對(duì)圖形進(jìn)行標(biāo)注和打印。高層次的作圖包括二維和三維的可視化、圖象處理
8、、動(dòng)畫(huà)和表達(dá)式作圖??捎糜诳茖W(xué)計(jì)算和工程繪圖。新版本的MATLAB對(duì)整個(gè)圖形處理功能作了很大的改進(jìn)和完善,使它不僅在一般數(shù)據(jù)可視化軟件都具有的功能(例如二維曲線和三維曲面的繪制和處理等)方面更加完善,而且對(duì)于一些其他軟件所沒(méi)有的功能(例如圖形的光照處理、色度處理以及四維數(shù)據(jù)的表現(xiàn)等),MATLAB同樣表現(xiàn)了出色的處理能力。同時(shí)對(duì)一些特殊的可視化要求,例如圖形對(duì)話等,MATLAB也有相應(yīng)的功能函數(shù),保證了用戶不同層次的要求。另外新版本的M
9、ATLAB還著重在圖形用戶界面(GUI)的制作上作了很大的改善,對(duì)這方面有特殊要求的用戶也可以得到滿足。</p><p> 關(guān)鍵字:matlab 圖像處理</p><p><b> Abstract</b></p><p> Since the date of MATLAB produced has convenient data v
10、isualization function, to vector and matrix with graphics demonstrated, and can be graph to mark and print. High level of construction including 2 d and 3 d visualization, image processing, animation and expression mappi
11、ng. Can be used in scientific computing and engineering drawing. The new version of the MATLAB to the graphics functions made a lot of improvement and perfect, make it not only in the general data visualization software
12、with </p><p> Key words: matlab Image processing</p><p><b> 1MATLAB簡(jiǎn)介</b></p><p> 1.1 MATLAB說(shuō)明</p><p> MATLAB是由美國(guó)mathworks公司發(fā)布的主要面對(duì)科學(xué)計(jì)算、可視化以及交互式程序設(shè)計(jì)的高科技
13、計(jì)算環(huán)境。它將數(shù)值分析、矩陣計(jì)算、科學(xué)數(shù)據(jù)可視化以及非線性動(dòng)態(tài)系統(tǒng)的建模和仿真等諸多強(qiáng)大功能集成在一個(gè)易于使用的視窗環(huán)境中,為科學(xué)研究、工程設(shè)計(jì)以及必須進(jìn)行有效數(shù)值計(jì)算的眾多科學(xué)領(lǐng)域提供了一種全面的解決方案,并在很大程度上擺脫了傳統(tǒng)非交互式程序設(shè)計(jì)語(yǔ)言(如C、Fortran)的編輯模式,代表了當(dāng)今國(guó)際科學(xué)計(jì)算軟件的先進(jìn)水平。 </p><p> MATLAB和Mathematica、Maple并稱為三大數(shù)學(xué)軟
14、件。它在數(shù)學(xué)類科技應(yīng)用軟件中在數(shù)值計(jì)算方面首屈一指。MATLAB可以進(jìn)行矩陣運(yùn)算、繪制函數(shù)和數(shù)據(jù)、實(shí)現(xiàn)算法、創(chuàng)建用戶界面、連接其他編程語(yǔ)言的程序等,主要應(yīng)用于工程計(jì)算、控制設(shè)計(jì)、信號(hào)處理與通訊、圖像處理、信號(hào)檢測(cè)、金融建模設(shè)計(jì)與分析等領(lǐng)域。</p><p> 1.2 MATLAB的語(yǔ)言特點(diǎn)</p><p> ?。?)語(yǔ)言簡(jiǎn)潔緊湊,使用方便靈活,庫(kù)函數(shù)極其豐富。運(yùn)算符豐富。 <
15、;/p><p> ?。?)MATLAB既具有結(jié)構(gòu)化的控制語(yǔ)句(如for循環(huán),while循環(huán),break語(yǔ)句和 if語(yǔ)句),又有面向?qū)ο缶幊痰奶匦浴?lt;/p><p> (3)程序限制不嚴(yán)格,程序設(shè)計(jì)自由度大。</p><p> ?。?)MATLAB的圖形功能強(qiáng)大。</p><p> (5)MATLAB的缺點(diǎn)是,它和其他高級(jí)程序相比,程序的執(zhí)行速
16、度較慢。</p><p> ?。?)由于MATLAB的程序不用編譯等預(yù)處理,也不生成可執(zhí)行文件,程序?yàn)榻忉寛?zhí)行,所以速度較慢。</p><p> 1.3 MATLAB系統(tǒng)構(gòu)成 </p><p> 主要由以下五部分構(gòu)成:</p><p> (1) MATLAB語(yǔ)言</p><p> ?。?)MATLAB工作環(huán)境&l
17、t;/p><p><b> ?。?)圖形處理</b></p><p> ?。?)MATLAB數(shù)學(xué)函數(shù)</p><p> ?。?)MATLAB應(yīng)用編程人員接口(API)</p><p><b> 2基本原理</b></p><p><b> 2.1整體原理</b
18、></p><p> 幾何變換是圖像處理和圖像分析的重要內(nèi)容之一。通過(guò)幾何變換,可以根據(jù)應(yīng)用的需要使原圖像產(chǎn)生大小、形狀和位置等各方面的變化。也就是說(shuō),幾何變換可以改變像素點(diǎn)所在的幾何位置以及圖像中各物體之間的空間位置關(guān)系,這種運(yùn)算可以被看成是將各物體在圖像內(nèi)移動(dòng),特別是圖像具有一定的規(guī)律性時(shí),一個(gè)圖像可以由另一個(gè)圖像通過(guò)做幾何變換來(lái)產(chǎn)生。 幾何變換可以分為圖像的位置變換(平移、鏡像、旋轉(zhuǎn))、形狀變換(放
19、大、縮小和剪切)以及圖像的復(fù)合變換。圖像幾何變換的一般表達(dá)式為:</p><p> 其中(x, y)表示像素點(diǎn)的坐標(biāo)位置,f(x, y)表示圖像像素點(diǎn)(x, y)的灰度值. 圖像幾何變換就是建立一幅圖像與其變換后的圖像中所有各點(diǎn)之間的映射關(guān)系。</p><p><b> 2.2各部分原理</b></p><p><b> 2.2
20、.1平移變換</b></p><p> 若將像素點(diǎn)(x, y)平移到(x+Δx, y+Δ y), 則圖像平移變換函數(shù)的矩陣表示式為:</p><p><b> 2.2.2鏡像翻轉(zhuǎn)</b></p><p> 圖像的鏡像變換是與人們?nèi)粘I蠲芮邢嚓P(guān)的一種變換。圖像的鏡像變換不改變圖像的形狀。圖像的鏡像變換包括水平鏡像、垂直鏡像和對(duì)
21、角鏡像。</p><p> 圖像的水平鏡像變換的矩陣表示形式為:</p><p> 圖像的垂直鏡像變換的矩陣表示形式為:</p><p> 圖像的對(duì)角鏡像變換的矩陣表示形式為:</p><p><b> 1.2.3旋轉(zhuǎn)變換</b></p><p> 原始圖像的任意點(diǎn)A(x0, y0)經(jīng)旋
22、轉(zhuǎn)β 角度后到新的位置A(x, y),則旋轉(zhuǎn)變換函數(shù)的矩陣表示式為:</p><p> 對(duì)圖像進(jìn)行旋轉(zhuǎn)變換時(shí)應(yīng)注意以下幾點(diǎn):</p><p> ?。?)為了避免圖像旋轉(zhuǎn)之后可能產(chǎn)生的信息丟失, 可以先進(jìn)行平移, 然后進(jìn)行圖像旋轉(zhuǎn)。</p><p> ?。?)圖像旋轉(zhuǎn)之后, 可能會(huì)出現(xiàn)一些空白點(diǎn), 需對(duì)這些空白點(diǎn)進(jìn)行灰度級(jí)的插值處理, 否則會(huì)影響旋轉(zhuǎn)之后的圖像質(zhì)量。
23、</p><p> 1.2.4縮小和放大</p><p> 若圖像坐標(biāo)(x, y)縮放(fx, fy)倍, 則縮放變換函數(shù)的矩陣表示為:</p><p> 如果fx= fy, 即在x 軸方向和y 軸方向縮放的比率相同, 稱為圖像的全比例縮放;如果fx ≠ fy,圖像的比例縮放會(huì)改變?cè)紙D像像素間的相對(duì)位置, 產(chǎn)生幾何畸變。</p><p&g
24、t; 圖像放大有三種方法,常用的插值算法有三種:最近鄰插值、雙線性插值、立方卷積插值,其中使用立方卷積插值達(dá)到的效果是最佳的。</p><p> 最近鄰插值算法最簡(jiǎn)單的插值法是最近鄰插值法,也叫零階插值法。即選擇離它所映射到的位置最近的輸入像素的灰度值為插值結(jié)果。對(duì)二維圖像,是取待測(cè)樣點(diǎn)周圍4 個(gè)相鄰像素點(diǎn)中距離最近1 個(gè)相鄰點(diǎn)的灰度值作為待測(cè)樣點(diǎn)的像素值。若幾何變換后輸出圖像上坐標(biāo)為(x′,y′)的對(duì)應(yīng)位置
25、為(m,n)</p><p> 雙線性插值算法雙線性插值又叫一階插值法,它要經(jīng)過(guò)三次插值才能獲得最終結(jié)果,是對(duì)最近鄰插值法的一種改進(jìn),先對(duì)兩水平方向進(jìn)行一階線性插值,然后再在垂直方向上進(jìn)行一階線性插值。</p><p> 立方卷積插值算法立方卷積插值又叫雙三次插值,是對(duì)雙線性插值的改進(jìn),是一種較為復(fù)雜的插值方式,它不僅考慮到周圍四個(gè)直接相鄰像素點(diǎn)灰度值的影響,還考慮到它們灰度值變化率的
26、影響。</p><p><b> 3編程與實(shí)現(xiàn)</b></p><p> 3.1原始圖像選擇讀取</p><p> MATLAB為用戶提供了專門的函數(shù)以從圖像格式的文件中讀寫圖像數(shù)據(jù)。采用的是imread函數(shù)來(lái)實(shí)現(xiàn)圖像文件的讀取操作,采用的格式如下:</p><p> A=imread(’filename.png
27、’)</p><p> 該語(yǔ)句用于讀取字符串“filename”對(duì)應(yīng)的灰度圖像或彩色圖像,“png”指定了文件的格式。</p><p> 采用imshow函數(shù)進(jìn)行圖像的顯示,采用的格式如下:</p><p> A=imread(‘filename.png’); </p><p> imshow(A);</p><p
28、> 當(dāng)這種顯示方式要求被顯示的圖像要么在當(dāng)前目錄下或MATLAB的目錄下。</p><p> 圖像讀入與顯示和變化的源代碼如下:</p><p> x=imread(' shu.png');</p><p> imshow(x);</p><p> title('原始圖像')</p>
29、<p> 程序運(yùn)行結(jié)果如下圖3.1所示:</p><p> 圖3.1 原始圖像</p><p><b> 3.2 平移變換</b></p><p> 平移變換主要通過(guò)move函數(shù)實(shí)現(xiàn)</p><p> 將一幅圖像向右下方移動(dòng),空白的地方用黑色填充。</p><p> A
30、=double(A);</p><p> A_move=zeros(size(A));</p><p> H=size(A);</p><p><b> A_x=30;</b></p><p><b> A_y=30;</b></p><p> A_move(A_x
31、+1:H(1),A_y+1:H(2),1:H(3))=A(1:H(1)-A_x,1:H(2)-A_y,1:H(3));</p><p> subplot(122);imshow(uint8(A_move));</p><p> title('平移后圖像')</p><p> 運(yùn)行程序,效果如圖3.2所示。</p><p>
32、; 圖3.2 平移后的圖像</p><p><b> 3.3 鏡像翻轉(zhuǎn)</b></p><p> 鏡像翻轉(zhuǎn)主要采用fliplr、flipud兩種函數(shù),對(duì)角翻轉(zhuǎn)時(shí)兩者同時(shí)應(yīng)用即可</p><p> 用法:fliplr(X)</p><p> 功能:matlab中的fliplr函數(shù)實(shí)現(xiàn)矩陣的左右翻轉(zhuǎn)。 fliplr
33、(X)使矩陣X沿垂直軸左右翻轉(zhuǎn)。</p><p> 相關(guān)函數(shù):flipud函數(shù)可以實(shí)現(xiàn)矩陣的上下翻轉(zhuǎn)。</p><p> 備注:matlab中提供了許多對(duì)矩陣操作的函數(shù),可以實(shí)現(xiàn)矩陣的三角矩陣的提取(triu、tril)、矩陣的翻轉(zhuǎn)(flipud、fliplr、Flipdim)和旋轉(zhuǎn)(rot90)等各種操作。</p><p> 用法:flipud(X)<
34、/p><p> 功能:matlab中的flipud函數(shù)實(shí)現(xiàn)矩陣的上下翻轉(zhuǎn)。flipud(X)實(shí)現(xiàn)了矩陣X的上下翻轉(zhuǎn)。</p><p> 相關(guān)函數(shù):fliplr函數(shù)實(shí)現(xiàn)矩陣的左右翻轉(zhuǎn)。</p><p> 備注:matlab中提供了許多對(duì)矩陣操作的函數(shù),可以實(shí)現(xiàn)矩陣的三角矩陣的提取(triu、tril)、矩陣的翻轉(zhuǎn)(flipud、fliplr、Flipdim)和旋轉(zhuǎn)(
35、rot90)等各種操作。</p><p> 對(duì)圖像進(jìn)行不同類型的鏡像變換:</p><p> I=imread(' shu.png');</p><p><b> figure(1)</b></p><p> subplot(221);imshow(uint8(I));</p>&l
36、t;p> title('原始圖像')</p><p> I=double(I);</p><p> h=size(I);</p><p> I_fliplr(1:h(1),1:h(2),1:h(3))=I(1:h(1),h(2):-1:1,1:h(3)); %水平鏡像變換</p><p> I1=uint8(I
37、_fliplr);</p><p> subplot(222);imshow(I1);</p><p> title('水平鏡像變換')</p><p> I_flipud(1:h(1),1:h(2),1:h(3))=I(h(1):-1:1,1:h(2),1:h(3)); %垂直鏡像變換</p><p> I2=uin
38、t8(I_flipud);</p><p> subplot(223);imshow(I2);</p><p> title('垂直鏡像變換')</p><p> I_fliplr_flipud(1:h(1),1:h(2),1:h(3))=I(h(1):-1:1,h(2):-1:1,1:h(3)); %對(duì)角鏡像變換</p><
39、;p> I3=uint8(I_fliplr_flipud);</p><p> subplot(224);imshow(I3);</p><p> title('對(duì)角鏡像變換')</p><p> 運(yùn)行程序,效果如圖3.3所示。</p><p> 圖3.3 鏡像變換圖像</p><p>
40、<b> 3.4 旋轉(zhuǎn)變換</b></p><p> 旋轉(zhuǎn)變換主要采用imrotate函數(shù)</p><p> 函數(shù)功能:對(duì)圖像進(jìn)行旋轉(zhuǎn)操作。在matlab命令窗口中鍵入help 或 doc imrotate或lookfor imrotate可以獲得該函數(shù)幫助信息。</p><p><b> 調(diào)用格式:</b><
41、;/p><p> B = imrotate(A,angle)</p><p> 將圖像A(圖像的數(shù)據(jù)矩陣)繞圖像的中心點(diǎn)旋轉(zhuǎn)angle度, 正數(shù)表示逆時(shí)針旋轉(zhuǎn), 負(fù)數(shù)表示順時(shí)針旋轉(zhuǎn)。返回旋轉(zhuǎn)后的圖像矩陣。 以這種格式調(diào)用該函數(shù), 該函數(shù)默認(rèn)采用最近鄰線性插值(Nearest-neighbor interpolation)。旋轉(zhuǎn)后的圖像超出的部分填充0(黑色)。</p><
42、;p> B = imrotate(A,angle,method)</p><p> 使用method參數(shù)可以改變插值算法,method參數(shù)可以為下面這三個(gè)值:</p><p> {'nearest'}:最鄰近線性插值(Nearest-neighbor interpolation)</p><p> 'bilinear':
43、 雙線性插值(Bilinear interpolation)</p><p> 'bicubic': 雙三次插值(或叫做雙立方插值)(Bicubic interpolation)</p><p> B = imrotate(A,angle,method,bbox)</p><p> bbox參數(shù)用于指定輸出圖像屬性:</p>
44、;<p> 'crop': 通過(guò)對(duì)旋轉(zhuǎn)后的圖像B進(jìn)行裁剪, 保持旋轉(zhuǎn)后輸出圖像B的尺寸和輸入圖像A的尺寸一樣。</p><p> {'loose'}: 使輸出圖像足夠大, 以保證源圖像旋轉(zhuǎn)后超出圖像尺寸范圍的像素值沒(méi)有丟失。 一般上這種格式產(chǎn)生的圖像的尺寸都要大于源圖像的尺寸。</p><p> 將圖像逆時(shí)針旋轉(zhuǎn)30 度。</p&g
45、t;<p> I=imread(' shu.png ');</p><p><b> figure;</b></p><p> subplot(121);imshow(I);</p><p> title('原始圖像')</p><p> I1=imrotate(I
46、,30,'crop');</p><p> subplot(122);imshow(I1);</p><p> title('逆時(shí)針旋轉(zhuǎn)30 度')</p><p> 運(yùn)行程序,效果如圖3.4所示。</p><p> 圖3.4 旋轉(zhuǎn)變換圖像</p><p><b>
47、3.5 縮小和放大</b></p><p> 圖像的縮放操作主要采用imresize函數(shù)操作。</p><p><b> 函數(shù)功能</b></p><p> 該函數(shù)用于對(duì)圖像做縮放處理。在matlab的命令窗口中輸入doc imresize或者h(yuǎn)elp imresize即可獲得該函數(shù)的幫助信息。</p><
48、p><b> 調(diào)用格式</b></p><p> B = imresize(A, scale)</p><p> 返回的圖像B的長(zhǎng)寬是圖像A的長(zhǎng)寬的m倍。即縮放圖像。 m大于1, 則放大圖像; m小于1, 縮小圖像。</p><p> B = imresize(A, [numrows numcols])</p>&l
49、t;p> numrows和numcols分別指定目標(biāo)圖像的高度和寬度。 顯而易見(jiàn), 由于這種格式允許圖像縮放后長(zhǎng)寬比例和源圖像長(zhǎng)寬比例不相同,因此所產(chǎn)生的圖像有可能發(fā)生畸變。</p><p> [Y newmap] = imresize(X, map, scale)</p><p> [...] = imresize(..., method)</p>&
50、lt;p> method參數(shù)用于指定在改變圖像尺寸時(shí)所使用的算法, 可以為一下幾種:</p><p> 'nearest': 這個(gè)參數(shù)也是默認(rèn)的, 即改變圖像尺寸時(shí)采用最近鄰插值算法;</p><p> 'bilinear':采用雙線性插值算法;</p><p> 'bicubic': 采用雙三次插值算法
51、;</p><p> [...] = imresize(..., parameter, value,...)</p><p> 使用最近鄰域法將圖像放大1.5倍和縮小0.5倍。</p><p> I=imread(' shu.png '); %I為原始圖像</p><p><b> fig
52、ure;</b></p><p> subplot(131);imshow(I); %顯示原始圖像</p><p> I=double(I);</p><p> I_en=imresize(I,4,'nearest'); %最近鄰法標(biāo)志函數(shù)nearest 擴(kuò)大1.5倍</p><p> subplot(13
53、2);imshow(uint8(I_en)); %顯示擴(kuò)大1.5倍后的圖像</p><p> I_re=imresize(I,0.5,'nearest'); %縮小兩倍</p><p> subplot(133);imshow(uint8(I_re));%顯示縮小0.5 倍后的圖像</p><p> 運(yùn)行程序,效果如圖3.5、3.6、3.7所示
54、</p><p> 圖3.5 原始圖像 圖3.6縮小0.5倍圖像</p><p> 圖3.7 放大1.5倍圖像</p><p> 使用不同插值方法將圖像縮小為原圖像的0.2 倍,再使用不同的方法放大5 倍。</p><p> I=imread(' shu.p ');</p&g
55、t;<p> J=imresize(I,0.2); %圖像縮小為0.2</p><p> J2=imresize(J,5,'nearest'); %圖像放大,最近鄰插值法</p><p> J3=imresize(J,5,'bilinear'); %圖像放大,雙線性插值法</p><p> J4=imresize
56、(J,5,'bicubic'); %圖像放大,雙立方插值法</p><p> subplot(2,2,1);imshow(I);</p><p> title('原始圖像');</p><p> subplot(2,2,2);imshow(J2);</p><p> title('最近鄰插值法&
57、#39;);</p><p> subplot(2,2,3);imshow(J3);</p><p> title('雙線性插值法');</p><p> subplot(2,2,4);imshow(J4);</p><p> title('雙立方插值法');</p><p>
58、 運(yùn)行程序,效果如圖3.8所示。</p><p> 圖3.8 不同插值放大圖像</p><p><b> 4總結(jié)與分析</b></p><p> Matlab作為一個(gè)極其強(qiáng)大的計(jì)算平臺(tái),擁有許多優(yōu)勢(shì),在對(duì)圖像進(jìn)行處理時(shí),可以看做是對(duì)于矩陣的運(yùn)算,通過(guò)不同的函數(shù)運(yùn)算,可以達(dá)到不同效果。</p><p> 本次設(shè)計(jì)主
59、要對(duì)于圖像進(jìn)行四種變換,分別是平移、鏡像、旋轉(zhuǎn)、縮放。</p><p> 在平移操作中,可以通過(guò)move函數(shù)更改每個(gè)像素的點(diǎn)位置,通過(guò)手動(dòng)更改(x,y)參數(shù)控制水平豎直方向的移動(dòng)距離。</p><p> 在鏡像試驗(yàn)中,主要應(yīng)用fliplr、flipud兩種函數(shù)進(jìn)行反轉(zhuǎn),其本質(zhì)仍然是矩陣的翻轉(zhuǎn)。在對(duì)角線翻轉(zhuǎn)時(shí),可以看做先進(jìn)行水平方向的翻轉(zhuǎn)在進(jìn)行水平防線的翻轉(zhuǎn)。</p>&l
60、t;p> 翻轉(zhuǎn)變換操作同樣是對(duì)像素的(x,y)進(jìn)行運(yùn)算和重排布,以達(dá)到整體翻轉(zhuǎn) 效果。</p><p> 圖像的縮放變換通過(guò)全比例縮放對(duì)像素進(jìn)行舍棄或補(bǔ)充性運(yùn)算,放大過(guò)程中填充的像素均是由附近像素灰度值等信息計(jì)算出來(lái)的。</p><p> 值得一提的是,旋轉(zhuǎn)和縮放變換中,默認(rèn)算法是最鄰近差值法,也就是令變換后像素的灰度值等于距它最近的輸入像素的灰度值,我在縮放變換中加入了最鄰近
61、插值法和雙線性插值法(其核心思想是在兩個(gè)方向分別進(jìn)行一次線性插值,混合的比例與離像素的距離成反比)以及雙立方插值法(在每個(gè)維度上對(duì)于連續(xù)的4個(gè)點(diǎn)進(jìn)行插值)的比較,比較的結(jié)果是最近鄰插值法鋸齒感明顯,色彩過(guò)渡也存在突變。雙線性插值法則優(yōu)于最近鄰插值法,雙立方插值法不僅考慮了周圍四個(gè)直接相鄰像素點(diǎn)灰度值的影響,還考慮到它們灰度值變化率的影響。因此克服了前兩種方法的不足之處,能夠產(chǎn)生比雙線性插值更為平滑的邊緣,計(jì)算精度很高,處理后的圖像像質(zhì)損
62、失最少,效果是最佳的。</p><p> 在進(jìn)行圖像縮放處理時(shí),應(yīng)根據(jù)實(shí)際情況對(duì)三種算法做出選擇,既要考慮時(shí)間方面的可行性,又要對(duì)變換后圖像質(zhì)量進(jìn)行考慮,這樣才能達(dá)到較為理想的結(jié)果。</p><p><b> 5心得體會(huì)</b></p><p> 通過(guò)此次的課程設(shè)計(jì),感觸頗深,因?yàn)樽屛艺J(rèn)識(shí)到了MATLAB的強(qiáng)大功能,同時(shí)也對(duì)圖像處理的認(rèn)識(shí)
63、有了進(jìn)一步的加深。</p><p> 在此次課程設(shè)計(jì)中我遇到了前所未有的難題。在此我非常感謝曾經(jīng)教育過(guò)我們的老師,是他們?cè)谄綍r(shí)教學(xué)中幫助我培養(yǎng)了良好的學(xué)習(xí)習(xí)慣和查閱新知識(shí),快速理解運(yùn)用新知識(shí)的能力。經(jīng)過(guò)一段時(shí)間的查閱和向老師的請(qǐng)教,我弄清楚了此時(shí)課程設(shè)計(jì)所需的全部原理知識(shí)。</p><p> 在編程的過(guò)程中,我也遇到了很多困難,所幸的是圖書(shū)館有相關(guān)書(shū)籍,網(wǎng)絡(luò)上有學(xué)長(zhǎng)學(xué)姐們做過(guò)的仿真作為
64、參考,有老師和同學(xué)們幫助我,于是我一步步實(shí)現(xiàn)了各個(gè)步驟的相關(guān)編程,并且在最后得以綜合整理,完成了此次的仿真任務(wù)。</p><p> 但是不得不說(shuō),此時(shí)課程設(shè)計(jì)由于時(shí)間和我的知識(shí)儲(chǔ)備的問(wèn)題,仍然有一些不完備的地方:在整個(gè)過(guò)程中雖然結(jié)果較為直觀,但我還有過(guò)將程序加上操作界面或者將畫(huà)面失真度量化等等想法,如果時(shí)間允許或有懂得更多的同學(xué)協(xié)助,應(yīng)該可以做得更好。</p><p> 盡管此時(shí)課程設(shè)
65、計(jì)仍然有很多不足,但是我在這個(gè)過(guò)程中加深了對(duì)各方面理論知識(shí)的了解,對(duì)我以后的學(xué)習(xí)工作產(chǎn)生了一定影響,十分感謝此次課程設(shè)計(jì)。 </p><p><b> 6參考文獻(xiàn)</b></p><p> [1] 高展宏,徐文波.基于MATLAB的數(shù)字圖像處理案例教程.北京:清華大學(xué)</p><p><b> 版社,2011</b>
66、;</p><p> [2] 賀興華等.MATLAB7.x圖像處理.北京:人民郵電出版社,2006</p><p> [3] 陳杰.MATLAB寶典.北京:電子工業(yè)出版社,2007.</p><p> [4] 張德豐. MATLAB數(shù)值分析與應(yīng)用. 北京:國(guó)防工業(yè)出版社,2009.</p><p> [5] 岡薩雷斯.溫茨著.數(shù)字圖像
67、處理.2版.阮秋琦,等譯. 北京:電子工業(yè)出版</p><p><b> 社,2002.</b></p><p> [6] 汪曉銀,鄒庭榮.數(shù)學(xué)軟件與數(shù)學(xué)實(shí)驗(yàn).武漢:華中農(nóng)業(yè)大學(xué)教務(wù)處,2007</p><p><b> 附錄</b></p><p><b> 平移</b&g
68、t;</p><p> A=imread('shu.png');</p><p><b> figure;</b></p><p> subplot(121);imshow(A);</p><p> title('原始圖像')</p><p> A=dou
69、ble(A);</p><p> A_move=zeros(size(A));</p><p> H=size(A);</p><p><b> A_x=30;</b></p><p><b> A_y=30;</b></p><p> A_move(A_x+1:H
70、(1),A_y+1:H(2),1:H(3))=A(1:H(1)-A_x,1:H(2)-A_y,1:H(3));</p><p> subplot(122);imshow(uint8(A_move));</p><p> title(' 平移后圖像')</p><p><b> 鏡像</b></p><p
71、> I=imread(' shu.png ');</p><p><b> figure(1)</b></p><p> subplot(221);imshow(uint8(I));</p><p> title('原始圖像')</p><p> I=double(I);&
72、lt;/p><p> h=size(I);</p><p> I_fliplr(1:h(1),1:h(2),1:h(3))=I(1:h(1),h(2):-1:1,1:h(3)); %水平鏡像變換</p><p> I1=uint8(I_fliplr);</p><p> subplot(222);imshow(I1);</p>
73、<p> title('(b) 水平鏡像變換')</p><p> I_flipud(1:h(1),1:h(2),1:h(3))=I(h(1):-1:1,1:h(2),1:h(3)); %垂直鏡像變換</p><p> I2=uint8(I_flipud);</p><p> subplot(223);imshow(I2);&l
74、t;/p><p> title('垂直鏡像變換')</p><p> I_fliplr_flipud(1:h(1),1:h(2),1:h(3))=I(h(1):-1:1,h(2):-1:1,1:h(3)); %對(duì)角鏡像變換</p><p> I3=uint8(I_fliplr_flipud);</p><p> subpl
75、ot(224);imshow(I3);</p><p> title('對(duì)角鏡像變換')</p><p><b> 旋轉(zhuǎn)</b></p><p> I=imread('shu.png ');</p><p><b> figure;</b></p>
76、<p> subplot(121);imshow(I);</p><p> title('原始圖像')</p><p> I1=imrotate(I,30,'crop');</p><p> subplot(122);imshow(I1);</p><p> title(' 逆時(shí)
77、針旋轉(zhuǎn)30 度')</p><p><b> 縮放1</b></p><p> I=imread('shu.png '); %I為原始圖像</p><p><b> figure;</b></p><p> subplot(131);imshow(I); %顯示原始圖
78、像</p><p> I=double(I);</p><p> I_en=imresize(I,1.5,'nearest'); %最近鄰法標(biāo)志函數(shù)nearest 擴(kuò)大1.5 倍</p><p> subplot(132);imshow(uint8(I_en)); %顯示擴(kuò)大1.5 倍后的圖像</p><p> tit
79、le(‘最近鄰法擴(kuò)大1.5 倍’)</p><p> I_re=imresize(I,0.5,'nearest'); %縮小0.5倍</p><p> subplot(133);imshow(uint8(I_re));%顯示縮小0.5倍后的圖像</p><p> title(‘最近鄰法縮小0.5倍’)</p><p>&
80、lt;b> 縮放2</b></p><p> I=imread('shu.png ');</p><p> J=imresize(I,0.2); %圖像縮小為0.2</p><p> J2=imresize(J,15,'nearest'); %圖像放大,最近鄰插值法</p><p>
81、 J3=imresize(J,15,'bilinear'); %圖像放大,雙線性插值法</p><p> J4=imresize(J,15,'bicubic'); %圖像放大,雙立方插值法</p><p> subplot(2,2,1);imshow(I);</p><p> title('原始圖像');<
82、/p><p> subplot(2,2,2);imshow(J2);</p><p> title('最近鄰插值法');</p><p> subplot(2,2,3);imshow(J3);</p><p> title('雙線性插值法');</p><p> subplot(2
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 微機(jī)原理及應(yīng)用技術(shù)課程設(shè)計(jì)
- access數(shù)據(jù)庫(kù)應(yīng)用技術(shù)課程設(shè)計(jì)
- web應(yīng)用技術(shù)課程設(shè)計(jì)——在線影評(píng)系統(tǒng)
- 通信工程c語(yǔ)言課程設(shè)計(jì)
- 電氣控制及plc應(yīng)用技術(shù)課程設(shè)計(jì)
- web應(yīng)用技術(shù)課程設(shè)計(jì)(圖書(shū)管理系統(tǒng))
- 基于moodle的多媒體應(yīng)用技術(shù)課程設(shè)計(jì)
- 電氣控制及plc應(yīng)用技術(shù)課程設(shè)計(jì)
- 通信工程課程設(shè)計(jì)實(shí)施細(xì)則
- 班級(jí)成績(jī)管理系統(tǒng)--通信工程課程設(shè)計(jì)
- matlab課程設(shè)計(jì)--應(yīng)用圖像處理
- 數(shù)據(jù)庫(kù)應(yīng)用技術(shù)課程設(shè)計(jì)--超市進(jìn)銷存管理
- 現(xiàn)代電氣控制及plc應(yīng)用技術(shù)課程設(shè)計(jì)4.5
- 可編程序控制器應(yīng)用技術(shù)課程設(shè)計(jì)
- 《數(shù)字圖像處理技術(shù)課程設(shè)計(jì)報(bào)告》--車牌識(shí)別系統(tǒng)
- 光纖通信技術(shù)課程設(shè)計(jì)--光纖簡(jiǎn)介
- 單片機(jī)應(yīng)用技術(shù)課程整體教學(xué)設(shè)計(jì)
- 通信技術(shù)應(yīng)用課程設(shè)計(jì)報(bào)告
- 圖像處理課程設(shè)計(jì)
- matlab軟件課程設(shè)計(jì)-- 應(yīng)用圖像處理
評(píng)論
0/150
提交評(píng)論