版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、數(shù)字圖像處理技術(shù)與應(yīng)用練習題說明:不允許直接使用MATLAB(或者OPENCV等等軟件)所帶的圖像圖像函數(shù),重點考察大家是否理解了各種處理算法,算法可用偽代碼描述。算法應(yīng)較詳細。1、 設(shè)一幅大小為MN的灰度圖像I中,灰度為g的像素數(shù)為h(g), 。 請寫出對圖像I進行直方圖均衡化,得到圖像J的計算方法。clc;clear;I= imread(a.jpg);I= rgb2gray(I) ; %將圖像轉(zhuǎn)換為灰度圖像J= histeq( I) ; %對I 進行直方圖均衡化subplot( 121) ,imshow(I) ,title(原始圖像) ;subplot (122), imshow(J),
2、title(直方圖均衡化后的圖像);figure( 2) ;subplot( 121) ,imhist(I, 64), title( 原始的直方圖);subplot( 122) ,imhist(J,64) ,title( 均衡化后的直方圖);2、 設(shè)一幅大小為MN的灰度圖像I中,現(xiàn)要變成(放大或縮小)為 PQ的圖像J,請寫出J的生成算法(可以使用近鄰插值)。I=imread(f.jpg);%讀入圖像%圖像屬性% Filename: f.jpg% FileModDate: 24-Aug-2008 16:50:30% FileSize: 20372% Format: jpg% FormatVers
3、ion: % Width: 480% Height: 640% BitDepth: 8% ColorType: grayscale% FormatSignature: % NumberOfSamples: 1% CodingMethod: Huffman% CodingProcess: Sequential% Comment: rows,cols=size(I);K1 = str2double(inputdlg(請輸入行縮放倍數(shù), INPUT scale factor, 1, 0.6);%行默認變?yōu)樵瓉淼?.6倍K2 = str2double(inputdlg(請輸入列縮放倍數(shù), INPUT
4、scale factor, 1, 0.4);%列默認變?yōu)樵瓉淼?.4倍width = K1 * rows; height = K2 * cols;im2 = uint8(zeros(width,height); %定義輸出圖像矩陣widthScale = rows/width;heightScale = cols/height;for x = 6:width - 6 %為防止矩陣溢出而選擇的參數(shù)6 for y = 6:height - 6 oldX = x * widthScale; %oldX,oldY為原坐標,x,y為新坐標 oldY = y * heightScale; if (oldX
5、/double(uint16(oldX) = 1.0) & (oldY/double(uint16(oldY) = 1.0) im2(x,y) = I(int16(oldX),int16(oldY); else a = double(round(oldX); b = double(round(oldY); %若不是整數(shù)四舍五入后把臨近值賦過去 im2(x,y) = I(a,b); end endendimshow(I); %輸出原圖像figure;imshow(im2); %輸出縮放后圖像3、 設(shè)一幅大小為MN的灰度圖像I中,現(xiàn)要將其逆時針旋轉(zhuǎn) A度,得到圖像J,請寫出J的生成算法(可以使用近
6、鄰插值)。clear;%此題是用最近鄰域法實現(xiàn)圖像旋轉(zhuǎn)im1=imread(b.jpg);m,n,p=size(im1);% 將圖像旋轉(zhuǎn)30度a=0.5; %a=sin30=0.5b=0.866; %b=cos30=0.866row=n*a+m*b;col=n*b+m*a;for i=1:row %先把圖象填充成全黑 for j=1:col im2(i,j,:)=uint8(0); endend for i=1:m %把原圖象像素點旋轉(zhuǎn)后變?yōu)樾聢D象點 for j=1:n xx=round(abs(i-m/2)*b-(j-n/2)*a+row/2); yy=round(abs(i-m/2)*a+
7、(j-n/2)*b+col/2); for k=1:3 im2(xx,yy,k)=im1(i,j,k); end endendtemp1=uint8(0);temp2=uint8(0);temp3=uint8(0);for i=1:row %把畫面上的空點按照最近鄰插值法填充 temp1=uint8(0); temp2=uint8(0); temp3=uint8(0); for j=1:col %找到最右的圖象邊界點 if (im2(i,j,:)=uint8(0) else kk=j; end end for j=1:kk if (im2(i,j,:)=uint8(0) im2(i,j,1)=
8、temp1; im2(i,j,2)=temp2; im2(i,j,3)=temp3; else temp1=im2(i,j,1); temp2=im2(i,j,2); temp3=im2(i,j,3); end endend imshow(im1);figure;imwrite(im1,5.jpg); %保存原圖像imshow(im2);imwrite(im2,6.jpg);%保存旋轉(zhuǎn)后圖像4、 請寫出生成 (2N+1)(2N+1)大小的高斯模板H(方差為sigma)的方法。5、 請寫出生成 (2N+1)(2N+1)大小的高斯一階導數(shù)模板HX(水平方向的梯度)、HY(垂直方向的梯度)(高斯的方
9、差為sigma)的方法。6、請寫出使用大小為(2N+1)(2N+1)模板H對圖像I進行濾波,生成圖像J的方法。7、請寫出使用大小為33的模板對圖像I進行中值濾波,生成圖像J的方法。clear; A=imread(num22,bmp); subplot(1,2,1); B=rgb2gray(A); subimage(B); title(處理前的圖); C=B; xsize=size(B); for k=2:(xsize(1)-1) for j=2:(xsize(2)-1) t=B(k-1:k+1,j-1:j+1); C(k,j)=median(t(1:9); end end subplot(1,
10、2,2); subimage(C); title(處理后的圖);8、 請寫出求 Otsu閾值(即最大類間距準則)的計算方法。 試證明采用最大類間距準則計算出的閾值與采用最小類內(nèi)距準則計算出的閾值相同。9、 設(shè)有一幅二值圖像(元素取值為0或1),請生成該圖像的標記圖像。(即第一個連通區(qū)域中的每一個白色像素的值都置為1,第二個連通區(qū)域中的每一個白色像素的值都置為2,依此類推。區(qū)域編號可不考慮順序)clear all;close all;clc;img=imread(liantong.bmp);imgn=img128;s=uint8(1-imgn); % s=0 0 0 0 0 0 0 0 0 0
11、0 0 0 0 0 0 0;0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0; %這個矩陣是維基百科中的矩陣1 1 1 1 1 1 1 1 0 0 1 1 1 1 0 0;0 0 1 1 1 1 0 0 0 1 1 1 1 0 0 0;0 1 1 1 1 0 0 0 1 1 1 0 0 1 1 0;1 1 1 0 0 1 1 0 0 0 1 1 1 0 0 0;0 1 1 0 0 0 0 0 1 1 0 0 0 1 1 0;0 0 0 0 0 1 1 1 1 0 0 1 1 1 1 0;0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;%imshow(mat2gra
12、y(s);m n=size(s);tmp=zeros(m,n); %標記圖像label=1;queue_head=1; %隊列頭queue_tail=1; %隊列尾neighbour=-1 -1;-1 0;-1 1;0 -1;0 1;1 -1;1 0;1 1; %和當前像素坐標相加得到八個鄰域坐標for i=2:m-1 for j=2:n-1 if s(i,j)=1 & tmp(i,j) =0 tmp(i,j)=label; qqueue_tail=i j; %用元組模擬隊列,當前坐標入列 queue_tail=queue_tail+1; while queue_head=queue_tail
13、 pix=qqueue_head; for k=1:8 %8鄰域搜索 pix1=pix+neighbour(k,:); if pix1(1)=2 & pix1(1)=2 &pix1(2)=n-1 if s(pix1(1),pix1(2) = 1 & tmp(pix1(1),pix1(2) =0 %如果當前像素鄰域像素為1并且標記圖像的這個鄰域像素沒有被標記,那么標記 tmp(pix1(1),pix1(2)=label; qqueue_tail=pix1(1) pix1(2); queue_tail=queue_tail+1; end end end queue_head=queue_head+
14、1; end clear q; %清空隊列,為新的標記做準備 label=label+1; queue_head=1; queue_tail=1; end endend10、設(shè)一幅二值圖像中,只有一個白色區(qū)域,試給出求該區(qū)域外圍輪廓線的方法(要求按順時針的順序給出各點的坐標,即行/列號)。 輪廓提取的算法很多,本題對于二值圖像可以用一個簡單的算法進行處理,首先遍歷圖像中的每一個像素點,查看該點像素值是否為白色像素點;若是再查看該點周圍8鄰域像素點的灰度值之和為2040;若是,則該點是內(nèi)部點,輸出圖像相應(yīng)位置置為黑色。若不是,則輸出該點的坐標信息。 11、設(shè)有一幅二值圖像,采用 33的結(jié)構(gòu)元(每
15、個元素均為1)對其進行腐蝕操作,試寫出得到結(jié)果圖像的方法。 %A是處理的矩陣 B是結(jié)構(gòu)體,此題為3x3的元素均為1的結(jié)構(gòu)體, 用來對A進行掃描的%實現(xiàn)的是簡單的二值圖像的處理灰度圖像有待研究%實現(xiàn)圖像的腐蝕已完成 未測試 function ans =mimerode(A,B) %初始化ha,wa =size(A);hb,wb =size(B);origin =0,0;ans =zeros(ha,wa); for i = 1:hb for j = 1:wb if (B(i,j)= 1) origin = i,j; break; end endend %對矩陣A進行邊擴張 以0補充new_A =z
16、eros(ha+hb*2,wa+wb*2);for i = 1:ha for j = 1:wa new_A(i+hb,j+wb) = A(i,j); endend %對矩陣A進行遍歷for i = 1:ha for j = 1:wa if A(i,j) = 0 continue; end %把B的origin點移到當前處理點 %尋找B的影響區(qū)域塊 begin_i = i + hb - origin(1); begin_j = j + wb - origin(2); %對矩陣new_A中和重合的B中的元素對比 for i1 =begin_i:begin_i+hb-1 for j1 =begin_
17、j:begin_j+wb-1 flag = true; if (B(i1-begin_i+1,j1-begin_j+1)= 1 & new_A(i1,j1) = 0) flag = false break; end end end if flag ans(i,j) = 1; else ans(i,j) = 0; end endend12、寫出二維離散傅立葉變換、反變換的計算公式,給出基于頻域濾波的基本步驟。 二維離散傅里葉變換公式:假設(shè)以正方形網(wǎng)格采樣得到的圖像用f(x,y)來表示,其大小為N行M列,則f(x,y)的二維離散傅里葉變換可以表示為: Fu,v=x=0M-1y=0N-1fx,ye-
18、j2(uxM+vyN), u=0,1,M-1, v=0,1,N-1其反變換為:fx,y= 1MNu=0M-1v=0N-1Fu,ve-j2(uxM+vyN), x=0,1,M-1, y=0,1,N-1基于頻域濾波的基本步驟:(1) 用(-1)x+y乘以圖像來進行中心變換(2) 由(1)計算圖像的DFT(離散傅里葉變換),即F(u,v)(3) 用濾波器函數(shù)H(u,v)乘以F(u,v)(4) 計算(3)中結(jié)果的反DFT(5) 得到(4)中結(jié)果的實部(6) 用(-1)x+y乘以(5)中的結(jié)果13. 請寫出C 均值(K-means)聚類分割的基本步驟。14. 請寫出Canny算子檢測邊緣的詳細步驟。算法過程1高斯函數(shù) 2偏導數(shù):使用微分算子求出偏導數(shù) 3非極大值抑制: 沿幅角方向檢測模值的極大值點,即邊緣點,遍歷8個方向圖像像素,把每個像素偏導值與相鄰像素的模值比較,取其MAX值為邊緣點,置像素灰度值為0.3雙閾值檢測: 由于單閾值處理時,合適的閾值選擇較 困難,常常需要采用反復試驗,因此采用雙閾值檢測算法。 對經(jīng)過非極大值抑制后的圖像作用兩個閾值th1,th2,th1=0.4th2,兩個閾值作用后得到兩個圖像1、2,較大閾值檢測出的圖像2去除了大部分噪聲,但是也損失了有用的邊緣信息。較小閾值檢測得到的圖像1則保留著較多的邊緣信息,以此為基礎(chǔ),補充圖像2中的丟
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年旋裝式機油濾清器項目投資價值分析報告
- 四年級數(shù)學(四則混合運算)計算題專項練習與答案匯編
- 醫(yī)院改造工程質(zhì)保期協(xié)議
- KTV裝修安全合同
- 生態(tài)旅游開發(fā)居間合同
- 醫(yī)療設(shè)備安裝項目的工期管理方案
- 棋牌室裝修終止合同范本
- 農(nóng)業(yè)生產(chǎn)質(zhì)量管理與保障措施
- 2025年語文教研組家校合作計劃
- 化工行業(yè)總經(jīng)理崗位職責分析
- 表B. 0 .11工程款支付報審表
- 警務(wù)航空無人機考試題庫及答案
- 空氣自動站儀器運營維護項目操作說明以及簡單故障處理
- 新生兒窒息復蘇正壓通氣課件
- 2022年12月Python-一級等級考試真題(附答案-解析)
- 法律顧問投標書
- 班主任培訓簡報4篇(一)
- 成都市數(shù)學八年級上冊期末試卷含答案
- T-CHSA 020-2023 上頜骨缺損手術(shù)功能修復重建的專家共識
- 危重癥患者轉(zhuǎn)運指南-課件
- Hypermesh lsdyna轉(zhuǎn)動副連接課件完整版
評論
0/150
提交評論