數(shù)字圖像處理期末考試題_第1頁
數(shù)字圖像處理期末考試題_第2頁
數(shù)字圖像處理期末考試題_第3頁
數(shù)字圖像處理期末考試題_第4頁
數(shù)字圖像處理期末考試題_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、數(shù)字圖像處理技術(shù)與應(yīng)用練習(xí)題說明:不允許直接使用MATLAB(或者OPENCV等等軟件)所帶的圖像圖像函數(shù),重點(diǎn)考察大家是否理解了各種處理算法,算法可用偽代碼描述。算法應(yīng)較詳細(xì)。1、 設(shè)一幅大小為M×N的灰度圖像I中,灰度為g的像素?cái)?shù)為h(g), 。 請(qǐng)寫出對(duì)圖像I進(jìn)行直方圖均衡化,得到圖像J的計(jì)算方法。clc;clear;I= imread('a.jpg');I= rgb2gray(I) ; %將圖像轉(zhuǎn)換為灰度圖像J= histeq( I) ; %對(duì)I 進(jìn)行直方圖均衡化subplot( 121) ,imshow(I) ,title('原始圖像') ;

2、subplot (122), imshow(J), title('直方圖均衡化后的圖像');figure( 2) ;subplot( 121) ,imhist(I, 64), title( '原始的直方圖');subplot( 122) ,imhist(J,64) ,title(' 均衡化后的直方圖');2、 設(shè)一幅大小為M×N的灰度圖像I中,現(xiàn)要變成(放大或縮?。?P×Q的圖像J,請(qǐng)寫出J的生成算法(可以使用近鄰插值)。I=imread('f.jpg');%讀入圖像%圖像屬性% Filename: '

3、;f.jpg'% FileModDate: '24-Aug-2008 16:50:30'% FileSize: 20372% Format: 'jpg'% FormatVersion: ''% Width: 480% Height: 640% BitDepth: 8% ColorType: 'grayscale'% FormatSignature: ''% NumberOfSamples: 1% CodingMethod: 'Huffman'% CodingProcess: 'Seq

4、uential'% Comment: rows,cols=size(I);K1 = str2double(inputdlg('請(qǐng)輸入行縮放倍數(shù)', 'INPUT scale factor', 1, '0.6');%行默認(rèn)變?yōu)樵瓉淼?.6倍K2 = str2double(inputdlg('請(qǐng)輸入列縮放倍數(shù)', 'INPUT scale factor', 1, '0.4');%列默認(rèn)變?yōu)樵瓉淼?.4倍width = K1 * rows; height = K2 * cols;im2 = uin

5、t8(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為原坐標(biāo),x,y為新坐標(biāo) oldY = y * heightScale; if (oldX/double(uint16(oldX) = 1.0) & (oldY/double(uint16(oldY) = 1.0) im2(x,y) = I(in

6、t16(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è)一幅大小為M×N的灰度圖像I中,現(xiàn)要將其逆時(shí)針旋轉(zhuǎn) A度,得到圖像J,請(qǐng)寫出J的生成算法(可以使用近鄰插值)。clear;%此題是用最近鄰域法實(shí)現(xiàn)圖像旋轉(zhuǎn)im1=imread('b.jpg');m,n,p=size(im1);%

7、 將圖像旋轉(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 %把原圖象像素點(diǎn)旋轉(zhuǎn)后變?yōu)樾聢D象點(diǎn) for j=1:n xx=round(abs(i-m/2)*b-(j-n/2)*a+row/2); yy=round(abs(i-m/2)*a+(j-n/2)*b+col/2); for k=1:3 im2(xx,yy,k)=im1(i,j,k); end enden

8、dtemp1=uint8(0);temp2=uint8(0);temp3=uint8(0);for i=1:row %把畫面上的空點(diǎn)按照最近鄰插值法填充 temp1=uint8(0); temp2=uint8(0); temp3=uint8(0); for j=1:col %找到最右的圖象邊界點(diǎn) 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)=temp1; im2(i,j,2)=temp2; im2(i,j,3)=temp3; else temp1=im2(i,j,

9、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、 請(qǐng)寫出生成 (2N+1)×(2N+1)大小的高斯模板H(方差為sigma)的方法。5、 請(qǐng)寫出生成 (2N+1)×(2N+1)大小的高斯一階導(dǎo)數(shù)模板HX(水平方向的梯度)、HY(垂直方向的梯度)(高斯的方差為sigma)的方法。6、請(qǐng)寫出使用大小為(2N+1)&#

10、215;(2N+1)模板H對(duì)圖像I進(jìn)行濾波,生成圖像J的方法。7、請(qǐng)寫出使用大小為3×3的模板對(duì)圖像I進(jìn)行中值濾波,生成圖像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 en

11、d subplot(1,2,2); subimage(C); title('處理后的圖');8、 請(qǐng)寫出求 Otsu閾值(即最大類間距準(zhǔn)則)的計(jì)算方法。 試證明采用最大類間距準(zhǔn)則計(jì)算出的閾值與采用最小類內(nèi)距準(zhǔn)則計(jì)算出的閾值相同。9、 設(shè)有一幅二值圖像(元素取值為0或1),請(qǐng)生成該圖像的標(biāo)記圖像。(即第一個(gè)連通區(qū)域中的每一個(gè)白色像素的值都置為1,第二個(gè)連通區(qū)域中的每一個(gè)白色像素的值都置為2,依此類推。區(qū)域編號(hào)可不考慮順序)clear all;close all;clc;img=imread('liantong.bmp');imgn=img>128;s=uin

12、t8(1-imgn); % s=0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0; %這個(gè)矩陣是維基百科中的矩陣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

13、 0 0 0 0 0 0 0 0 0 0;%imshow(mat2gray(s);m n=size(s);tmp=zeros(m,n); %標(biāo)記圖像label=1;queue_head=1; %隊(duì)列頭queue_tail=1; %隊(duì)列尾neighbour=-1 -1;-1 0;-1 1;0 -1;0 1;1 -1;1 0;1 1; %和當(dāng)前像素坐標(biāo)相加得到八個(gè)鄰域坐標(biāo)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; %用元組模擬隊(duì)列,當(dāng)前坐標(biāo)入列 queue_t

14、ail=queue_tail+1; while queue_head=queue_tail pix=qqueue_head; for k=1:8 %8鄰域搜索 pix1=pix+neighbour(k,:); if pix1(1)>=2 && pix1(1)<=m-1 && pix1(2) >=2 &&pix1(2)<=n-1 if s(pix1(1),pix1(2) = 1 && tmp(pix1(1),pix1(2) =0 %如果當(dāng)前像素鄰域像素為1并且標(biāo)記圖像的這個(gè)鄰域像素沒有被標(biāo)記,那么標(biāo)記 tmp

15、(pix1(1),pix1(2)=label; qqueue_tail=pix1(1) pix1(2); queue_tail=queue_tail+1; end end end queue_head=queue_head+1; end clear q; %清空隊(duì)列,為新的標(biāo)記做準(zhǔn)備 label=label+1; queue_head=1; queue_tail=1; end endend10、設(shè)一幅二值圖像中,只有一個(gè)白色區(qū)域,試給出求該區(qū)域外圍輪廓線的方法(要求按順時(shí)針的順序給出各點(diǎn)的坐標(biāo),即行/列號(hào))。 輪廓提取的算法很多,本題對(duì)于二值圖像可以用一個(gè)簡(jiǎn)單的算法進(jìn)行處理,首先遍歷圖像中的每

16、一個(gè)像素點(diǎn),查看該點(diǎn)像素值是否為白色像素點(diǎn);若是再查看該點(diǎn)周圍8鄰域像素點(diǎn)的灰度值之和為2040;若是,則該點(diǎn)是內(nèi)部點(diǎn),輸出圖像相應(yīng)位置置為黑色。若不是,則輸出該點(diǎn)的坐標(biāo)信息。 11、設(shè)有一幅二值圖像,采用 3×3的結(jié)構(gòu)元(每個(gè)元素均為1)對(duì)其進(jìn)行腐蝕操作,試寫出得到結(jié)果圖像的方法。 %A是處理的矩陣 B是結(jié)構(gòu)體,此題為3x3的元素均為1的結(jié)構(gòu)體, 用來對(duì)A進(jìn)行掃描的%實(shí)現(xiàn)的是簡(jiǎn)單的二值圖像的處理灰度圖像有待研究%實(shí)現(xiàn)圖像的腐蝕已完成 未測(cè)試 function ans =mimerode(A,B) %初始化ha,wa =size(A);hb,wb =size(B);origin =0

17、,0;ans =zeros(ha,wa); for i = 1:hb for j = 1:wb if (B(i,j)= 1) origin = i,j; break; end endend %對(duì)矩陣A進(jìn)行邊擴(kuò)張 以0補(bǔ)充new_A =zeros(ha+hb*2,wa+wb*2);for i = 1:ha for j = 1:wa new_A(i+hb,j+wb) = A(i,j); endend %對(duì)矩陣A進(jìn)行遍歷for i = 1:ha for j = 1:wa if A(i,j) = 0 continue; end %把B的origin點(diǎn)移到當(dāng)前處理點(diǎn) %尋找B的影響區(qū)域塊 begin_i

18、 = i + hb - origin(1); begin_j = j + wb - origin(2); %對(duì)矩陣new_A中和重合的B中的元素對(duì)比 for i1 =begin_i:begin_i+hb-1 for j1 =begin_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、寫出二維離散傅立

19、葉變換、反變換的計(jì)算公式,給出基于頻域?yàn)V波的基本步驟。 二維離散傅里葉變換公式:假設(shè)以正方形網(wǎng)格采樣得到的圖像用f(x,y)來表示,其大小為N行M列,則f(x,y)的二維離散傅里葉變換可以表示為: Fu,v=x=0M-1y=0N-1fx,ye-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基于頻域?yàn)V波的基本步驟:(1) 用(-1)x+y乘以圖像來進(jìn)行中心變換(2) 由(1)計(jì)算圖像的DFT(離散傅里葉變換),即F(u,v)(3) 用濾波器函數(shù)H

20、(u,v)乘以F(u,v)(4) 計(jì)算(3)中結(jié)果的反DFT(5) 得到(4)中結(jié)果的實(shí)部(6) 用(-1)x+y乘以(5)中的結(jié)果13. 請(qǐng)寫出C 均值(K-means)聚類分割的基本步驟。14. 請(qǐng)寫出Canny算子檢測(cè)邊緣的詳細(xì)步驟。算法過程1高斯函數(shù) 2偏導(dǎo)數(shù):使用微分算子求出偏導(dǎo)數(shù) 3非極大值抑制: 沿幅角方向檢測(cè)模值的極大值點(diǎn),即邊緣點(diǎn),遍歷8個(gè)方向圖像像素,把每個(gè)像素偏導(dǎo)值與相鄰像素的模值比較,取其MAX值為邊緣點(diǎn),置像素灰度值為0.3雙閾值檢測(cè): 由于單閾值處理時(shí),合適的閾值選擇較 困難,常常需要采用反復(fù)試驗(yàn),因此采用雙閾值檢測(cè)算法。 對(duì)經(jīng)過非極大值抑制后的圖像作用兩個(gè)閾值th1,th2,th1=0.4th2,兩個(gè)閾值作用后得到兩個(gè)圖像1、2,較大閾值檢測(cè)出的圖像2去除了大部分噪聲,但是也損失了有用的邊

溫馨提示

  • 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)論