第一篇:《數(shù)字圖像處理》結(jié)課小論文
2013-2014年第一學(xué)期《數(shù)字圖像處理》科目考查卷
專業(yè):通信工程 班 級: 任課教師:王新新 姓名: 學(xué) 號: 成 績:
一 Deblurring Images Using the Wiener Filter ——使用維納濾波器進(jìn)行圖像去模糊簡介
在人們的日常生活中,常常會接觸很多的圖像畫面,而在景物成像的過程中有可能出現(xiàn)模糊,失真,混入噪聲等現(xiàn)象,最終導(dǎo)致圖像的質(zhì)量下降,我們現(xiàn)在把它還原成本來的面目,這就叫做圖像還原。引起圖像的模糊的原因有很多,舉例來說有運動引起的,高斯噪聲引起的,斑點噪聲引起的,椒鹽噪聲引起的等等,而圖像的復(fù)原也有很多,常見的例如逆濾波復(fù)原法,維納濾波復(fù)原法,約束最小二乘濾波復(fù)原法等等。它們算法的基本原理是,在一定的準(zhǔn)則下,采用數(shù)學(xué)最優(yōu)化的方法從退化的圖像去推測圖像的估計問題。因此在不同的準(zhǔn)則下及不同的數(shù)學(xué)最優(yōu)方法下便形成了各種各樣的算法。而我接下來要介紹的算法是一種很典型的算法,維納濾波復(fù)原法。它假定輸入信號為有用信號與噪聲信號的合成,并且它們都是廣義平穩(wěn)過程和它們的二階統(tǒng)計特性都已知。維納根據(jù)最小均方準(zhǔn)則,求得了最佳線性濾波器的的參數(shù),這種濾波器被稱為維納濾波器。
維納濾波器是最小均方差準(zhǔn)則下的最佳線性濾波器,它在圖像處理中有著重要的應(yīng)用。本文主要通過介紹維納濾波的結(jié)構(gòu)原理,以及應(yīng)用此方法通過MATLAB函數(shù)來完成圖像的復(fù)原。關(guān)鍵詞:維納函數(shù)、圖像復(fù)原。
二 維納濾波器結(jié)構(gòu)
維納濾波自身為一個FIR或IIR濾波器,對于一個線性系統(tǒng),如果其沖擊響應(yīng)為h(n),則當(dāng)輸入某個隨機(jī)信號x(n)時,式(1)
這里的輸入 ?
式(2)
式中s(n)代表信號,v(n)代表噪聲。我們希望這種線性系統(tǒng)的輸出是盡可能地逼近s(n)的某種估計,并用s^(n)表示,即
式(3)
因而該系統(tǒng)實際上也就是s(n)的一種估計器。這種估計器的主要功能是利用當(dāng)前的觀測值
x(n)以及一系列過去的觀測值x(n-1),x(n-2),……來完成對當(dāng)前信號值的某種估計。維納濾波屬于一種最佳線性濾波或線性最優(yōu)估計,是一最小均方誤差作為計算準(zhǔn)則的一種濾波。設(shè)信號的真值與其估計值分別為s(n)和)s^(n),而它們之間的誤差
式(4)
則稱為估計誤差。估計誤差e(n)為可正可負(fù)的隨機(jī)變量,用它的均方值描述誤差的大小顯然更為合理。而均方誤差最小,也就是
式(5)
最小。利用最小均方誤差作為最佳過濾準(zhǔn)則比較方便,它不涉及概率的描述,而且以它導(dǎo)出的最佳線性系統(tǒng)對其它很廣泛的一類準(zhǔn)則而言是屬最佳。
圖1 維納濾波器一般結(jié)構(gòu)
三、維納濾波器的局限
維納濾波復(fù)原法存在著幾個實質(zhì)性的局限。第一,最有標(biāo)準(zhǔn)是基于最小均方誤差的且對所有誤差等權(quán)處理,這個標(biāo)準(zhǔn)在數(shù)學(xué)上可以接受,但卻是個不適合人眼的方式,原因在于人類對復(fù)原錯誤的感知在具有一致灰度和亮度的區(qū)域中更為嚴(yán)重,而對于出現(xiàn)在暗的和高梯度區(qū)域的誤差敏感性差得多。第二,空間可變的退化不能用維納濾波復(fù)原法復(fù)原,而這樣的退化是常見的。第三,維納濾波不能處理非平穩(wěn)信號和噪聲。
四、模擬仿真
運行程序及結(jié)果
% 讀入圖像
The example reads in an RGB image and crops it to be 256-by-256-by-3.The deconvwnr function can handle arrays of any dimension.I = imread('peppers.png');I = I(10+[1:256],222+[1:256],:);figure;imshow(I);title('Original Image');
圖2 原始圖像
% 圖像模擬模糊處理。模擬一個真實的圖像,可以模糊。攝像機(jī)運動。示例創(chuàng)建一個point-spread函數(shù)PSF,對應(yīng)直線運動在31個像素(LEN = 31),在11度角(θ= 11)。模擬模
糊,過濾器是使用imfilter convolved與形象。
Simulate a a real-life image that could be blurred e.g., by camera motion.The example creates a point-spread function, PSF, corresponding to the linear motion across 31 pixels(LEN=31), at an angle of 11 degrees(THETA=11).To simulate the blur, the filter is convolved with the image using imfilter.LEN = 31;THETA = 11;PSF = fspecial('motion',LEN,THETA);Blurred = imfilter(I,PSF,'circular','conv');figure;imshow(Blurred);title('Blurred');
圖3圖像模擬模糊處理
%恢復(fù)模糊圖像。真正的PSF由模糊變清晰,這個例子執(zhí)行三個修復(fù)
wnr1 = deconvwnr(Blurred,PSF);figure;imshow(wnr1);title('Restored, True PSF');
圖4恢復(fù)模糊圖像
% 第二個恢復(fù)使用估計PSF,模擬運動模糊長度的兩倍長(LEN)。
wnr2=deconvwnr(Blurred,fspecial('motion',2*LEN,THETA));figure;imshow(wnr2);title('Restored, “Long” PSF');
圖5兩倍長模糊處理
%第三恢復(fù)使用估計PSF,模擬運動兩倍陡峭的角度模糊角度(θ)。
wnr3=deconvwnr(Blurred,fspecial('motion',LEN,2*THETA));figure;
imshow(wnr3);title('Restored, Steep');
圖6兩倍陡峭的角度處理
% 模擬加性噪聲。模擬使用態(tài)分布隨機(jī)數(shù)相加噪聲,并將它添加到模糊圖像,模糊。
noise = 0.1*randn(size(I));BlurredNoisy = imadd(Blurred,im2uint8(noise));figure;imshow(BlurredNoisy);title('Blurred & Noisy');
圖7模擬加性噪聲處理
%恢復(fù)圖像模糊處理。
恢復(fù)模糊和噪聲圖像使用一個逆濾波器,假設(shè)zero-noise,并比較這第一個結(jié)果實現(xiàn)了在步驟3中,wnr1。噪聲呈現(xiàn)在原始的數(shù)據(jù)顯著放大。
wnr4 = deconvwnr(BlurredNoisy,PSF);figure;imshow(wnr4);title('Inverse Filtering of Noisy Data');
圖8恢復(fù)噪聲圖像
%控制噪聲放大,NSR功能提供了信噪比。
NSR = sum(noise(:).^2)/sum(im2double(I(:)).^2);wnr5 = deconvwnr(BlurredNoisy,PSF,NSR);figure;imshow(wnr5);title('Restored with NSR');
圖9 NSR功能恢復(fù)噪聲圖像
%不同NSR值影響恢復(fù)的結(jié)果。小NSR值放大噪聲
wnr6 = deconvwnr(BlurredNoisy,PSF,NSR/2);figure;imshow(wnr6);title('Restored with NSR/2');
圖10 小NSR功能恢復(fù)噪聲圖像
%使用自相關(guān)來提高圖像恢復(fù)
改進(jìn)模糊的恢復(fù)和嘈雜的圖像,提供完整的自相關(guān)函數(shù)(ACF)噪音,NCORR,和信號,ICORR NP = abs(fftn(noise)).^2;NPOW = sum(NP(:))/prod(size(noise));% noise power NCORR = fftshift(real(ifftn(NP)));% noise ACF, centered IP = abs(fftn(im2double(I))).^2;IPOW = sum(IP(:))/prod(size(I));% original image power ICORR = fftshift(real(ifftn(IP)));% image ACF, centered
wnr7 = deconvwnr(BlurredNoisy,PSF,NCORR,ICORR);figure;imshow(wnr7);title('Restored with ACF');
圖11 自相關(guān)來提高圖像恢復(fù)
%探索修復(fù)提供了有限的統(tǒng)計信息:權(quán)力的噪音,NPOW,和一個單維的自相關(guān)函數(shù)的真實形象,ICORR1 ICORR1 = ICORR(:,ceil(size(I,1)/2));wnr8 = deconvwnr(BlurredNoisy,PSF,NPOW,ICORR1);figure;imshow(wnr8);title('Restored with NP & 1D-ACF');
圖12 單維自相關(guān)來提高圖像恢復(fù)
五、結(jié)論與心得體會
通過這個實驗,使我們更加深刻和具體的了解到了維納濾波的原理,功能以及在圖像處理方面的應(yīng)用。維納濾波器是對噪聲背景下的信號進(jìn)行估計,它是最小均方誤差準(zhǔn)則下的最佳線性濾波器。在實驗的過程中,我發(fā)現(xiàn)采用維納濾波復(fù)原可以得到比較好的效果,這個算法可以使估計的點擴(kuò)散函數(shù)值更加接近它的真實值。但實現(xiàn)維納濾波的要求是輸入過程是廣義平穩(wěn)的;輸入過程的統(tǒng)計特性是已知的。根據(jù)其他最佳準(zhǔn)則的濾波器也有同樣的要求。然而,由于輸入過程取決與外界信號,干擾環(huán)境,這種環(huán)境的統(tǒng)計特性常常是未知的,變化的,因而這兩個要求很難滿足,這就促使人們研究自適應(yīng)濾波器。
通過本次實驗,深深地了解了圖像處理是一門既有用又有難度的一門學(xué)科,需要我們認(rèn)真的學(xué)習(xí),自己在學(xué)習(xí)上還有很多的漏洞,在以后的學(xué)習(xí)中會更加的努力上進(jìn),做一個引以為自豪的人。
參考文獻(xiàn)
《數(shù)字圖像處理》,2007年,清華大學(xué)出版社。
《數(shù)字圖像處理(第3版)》,2010年,科教出版社。
《基于0penCV的計算機(jī)視覺技術(shù)實現(xiàn)》,2001,科學(xué)出版社。《計算機(jī)圖像處理》,2005,武漢大學(xué)出版社。
第二篇:數(shù)字圖像處理界面切換技術(shù)結(jié)課論文
彩色圖像界面切換技術(shù)研究與設(shè)計
摘 要
數(shù)字圖像處理(Digital Image Processing)是通過計算機(jī)對圖像進(jìn)行去除噪聲、增強(qiáng)、復(fù)原、分割、提取特征等處理的方法和技術(shù)。在日常生活中,圖像處理已經(jīng)得到了廣泛應(yīng)用,例如:電腦人像藝術(shù),電視中的特殊效果,自動售貨機(jī)鈔票的識別,郵政編碼的自動識別和利用指紋、虹膜、面部等特征的身份識別等。圖像的特技切換是計算機(jī)軟件開發(fā),尤其是多媒體軟件設(shè)計中經(jīng)常遇到的問題。
本文就所學(xué)到的微薄知識對利用VB程序設(shè)計實現(xiàn)彩色圖像界面切換技術(shù)做以基本闡述。
關(guān)鍵字:數(shù)字圖像處理 計算機(jī)軟件開發(fā) 界面切換
一、數(shù)字圖像處理概述: 數(shù)字圖像處理是通過計算機(jī)對圖像進(jìn)行去除噪聲、增強(qiáng)、復(fù)原、分割、提取特征等處理的方法和技術(shù)。數(shù)字圖像處理的產(chǎn)生和迅速發(fā)展主要受三個因素的影響:一是計算機(jī)的發(fā)展;二是數(shù)學(xué)的發(fā)展(特別是離散數(shù)學(xué)理論的創(chuàng)立和完善);三是廣泛的農(nóng)牧業(yè)、林業(yè)、環(huán)境、軍事、工業(yè)和醫(yī)學(xué)等方面的應(yīng)用需求的增長。圖像處理中,輸入的是質(zhì)量低的圖像,輸出的是改善質(zhì)量后的圖像,常用的圖像處理方法有圖像增強(qiáng)、復(fù)原、編碼、壓縮等。圖像處理技術(shù)在許多應(yīng)用領(lǐng)域受到廣泛重視并取得了重大的開拓性成就,屬于這些領(lǐng)域的有航空航天、生物醫(yī)學(xué)工程、工業(yè)檢測、機(jī)器人視覺、公安司法、軍事制導(dǎo)、文化藝術(shù)等,使圖像處理成為一門引人注目、前景遠(yuǎn)大的新型學(xué)科。
數(shù)字圖像處理的目的:一般來說,圖像進(jìn)行處理(或加工、分析)的主要目的有三個方面:
(1)提高圖像的視感質(zhì)量,如進(jìn)行圖像的亮度、彩色變換,增強(qiáng)、抑制某些分,對圖像進(jìn)行幾何變換等,以改善圖像的質(zhì)量。
(2)提取圖像中所包含的某些特征或特殊信息,這些被提取的特征或信息往往為計算機(jī)分析圖像提供便利。提取特征或信息的過程是模式識別或計算機(jī)視覺的預(yù)處理。提取的特征可以包括很多方面,如頻域特征、灰度或顏色特征、邊界特征、區(qū)域特征、紋理特征、形狀特征、拓?fù)涮卣骱完P(guān)系結(jié)構(gòu)等。
(3)圖像數(shù)據(jù)的變換、編碼和壓縮,以便于圖像的存儲和傳輸。
不管是何種目的的圖像處理,都需要由計算機(jī)和圖像專用設(shè)備組成的圖像處理系統(tǒng)對圖像數(shù)據(jù)進(jìn)行輸入、加工和輸出。
在日常生活中,圖像處理已經(jīng)得到了廣泛應(yīng)用。例如:電腦人像藝術(shù),電視中的特殊效果,自動售貨機(jī)鈔票的識別,郵政編碼的自動識別和利用指紋、虹膜、面部等特征的身份識別等。
二、系統(tǒng)總體分析 2.1 窗口設(shè)計
圖像的界面切換主要是指圖像進(jìn)入界面時的顯示方式,也就是按不同的規(guī)律顯示圖像中的各個像素點。
根據(jù)需要在窗體上配置必要的控件,并修改相應(yīng)的值,如圖1所示,圖片框用于顯示圖像,命令按鈕“獲取圖像”用于選擇指定圖像文件,并且將圖像顯示在圖片框內(nèi)。命令按鈕“退出”用于退出該窗口,其他命令的具體作用將在下文列舉。
圖1 添加控件及修改名稱
以同樣的方式添加其他控件按鈕,如上下對接進(jìn)入、從坐上到右下進(jìn)入、從中央到四周擴(kuò)散、以斜線方式進(jìn)入、以漸顯方式進(jìn)入、利用Bitlit函數(shù)實現(xiàn)界面切換和以工字型進(jìn)入等控件按鈕。如圖2所示:
圖2 窗格及控件按鈕
2.2 程序設(shè)計及實現(xiàn)過程
下面通過幾個具有代表性的界面切換實現(xiàn)過程,對界面切換技術(shù)加以簡單闡述。2.2.1 讀圖像數(shù)據(jù)
單擊“讀圖像數(shù)據(jù)”命令按鈕,相應(yīng)的單擊事件程序為: Private Sub Command1_Click()’以二進(jìn)制的方式打開文件對話框中用戶選擇的圖像文件 On Error GoTo Err CommonDialog1.Filter = “(*.*)|*.*|(*.gif)|*.gif|(*.bmp)|*.bmp|(*.jpg)|*.jpg” CommonDialog1.ShowOpen Picture1.Picture = LoadPicture(CommonDialog1.FileName)Err: Exit Sub End Sub Private Sub Command2_Click()End 通過該程序選擇.jpg文件實現(xiàn)圖像的讀取,如圖3所示。
圖3 獲取圖像的實現(xiàn)
2.2.2 圖像從上下對接進(jìn)入界面
圖像以上下對接方式進(jìn)入界面時,首先顯示圖像的第一行和最后一行,然后顯示圖像的第二行和倒數(shù)第二行,以此類推,最后將圖像中所有的像素顯示出來。其實現(xiàn)過程如圖4所示。
圖4 圖像以上下對接方式進(jìn)入界面的過程圖
對該控制命令進(jìn)行VB編程如下: Private Sub Command3_Click()Picture2.Picture = Picture3.Picture width2 = Picture1.ScaleWidth height2 = Picture1.ScaleHeight
For j = 0 To height2 / 2
For i = 0 To width2jj1
For j = 0 To i
c1 = Picture1.Point(i, j)
rr1 = c1 Mod 256
gg1 = c1 / 256 Mod 256
bb1 = c1 / 65536 If j < height2 And i < width2 Then Picture2.PSet(i, j), RGB(rr1, gg1, bb1)
c2 = Picture1.Point(j, i)
rr2 = c2 Mod 256
gg2 = c2 / 256 Mod 256
bb2 = c2 / 65536 If j < width2 And i < height2 Then Picture2.PSet(j, i), RGB(rr2, gg2, bb2)
Next j Next i End Sub 2.2.4 圖像從中央向四周擴(kuò)散進(jìn)入界面
圖像從中央向四周擴(kuò)散進(jìn)入界面時,首先顯示的是中心點像素,然后顯示圖像中心點周圍的像素,依次類推,每次顯示當(dāng)前已顯示像素的周圍一圈像素,最后將圖像中所有像素顯示出來.如圖6所示。
圖6 圖像從中央向四周擴(kuò)散進(jìn)入界面
圖像從中央向四周擴(kuò)散進(jìn)入界面的程序代碼如下: Picture2.Picture = Picture3.Picture w = Picture1.ScaleWidth h = Picture1.ScaleHeight x0 = w 2 y0 = h 2 rmax = Int(Sqr(x0 ^ 2 + y0 ^ 2))For r = 1 To rmax
dc = 1 /(6.28 * r)
For c = 0 To 6.28 Step dc
x = x0 + r * Cos(c)
y = y0 + r * Sin(c)
c1 = Picture1.Point(x, y)
If x >= 0 And x < w1 Then
rr1 = c1 Mod 256
gg1 = c1 / 256 Mod 256
bb1 = c1 / 65536
Picture2.PSet(x0, y0), RGB(rr1, gg1, bb1)
Picture2.PSet(x, y), RGB(rr1, gg1, bb1)
End If
Next c Next r End Sub 2.2.5 圖像以斜線方式進(jìn)入界面
圖像以斜線方式進(jìn)入界面時,首先顯示圖像的左上角像素,然后以斜線方式顯示當(dāng)前已顯示像素的下一個斜線上的像素,最后將圖像中所有像素都顯示出來。顯示過程如圖7所示。
圖7 圖像以斜線方式進(jìn)入界面的過程圖
其對應(yīng)的程序代碼為: Picture2.Picture = Picture3.Picture w = Picture1.ScaleWidth
h = Picture1.ScaleHeight Max = If(h < w, w, h)For d = 0 To 2 * Max y = d For x = 0 To d
If x < w And y < h Then
c1 = Picture1.Point(x, y)
rr1 = c1 Mod 256
gg1 = c1 / 256 Mod 256
bb1 = c1 / 65536
Picture2.PSet(x, y), RGB(rr1, gg1, bb1)
End If
y = y1 Step 2
For i = 0 To w1 Step 2
For i = 1 To w1 Step 2
For i = 1 To w1 Step 2
For i = 0 To w-1 Step 2
c1 = Picture1.Point(i, j)
rr1 = c1 Mod 256
gg1 = c1 / 256 Mod 256
bb1 = c1 / 65536
Picture2.PSet(i, j), RGB(rr1, gg1, bb1)
Next i Next j End Sub 2.2.7利用Bitblt函數(shù)實現(xiàn)界面切換
Bitblt是Windows API函數(shù),它用于從源對象向目標(biāo)對象成塊復(fù)制圖形,該函數(shù)對指定的源設(shè)備環(huán)境區(qū)域中的像素進(jìn)行位塊(bit block)轉(zhuǎn)換,以傳送到目標(biāo)設(shè)備環(huán)境。其實現(xiàn)過程如圖9所示:
圖9 Bitblt圖像進(jìn)入效果
其實現(xiàn)程序為:
Picture2.Picture = Picture3.Picture
w = Picture1.ScaleWidth
h = Picture1.ScaleHeight For i = 0 To w / 10 + 1
For j = 0 To 10
Bitblt Picture2.hDC, j * w / 10, 0, i, h, Picture1.hDC, j * w / 10, 0, &HCC0020
DoEvents
Delay 100000
Next j Next i End Sub
三、課程總結(jié)及心得體會
通過本學(xué)期對數(shù)字圖像處理課程的學(xué)習(xí),我掌握了基本的知識和操作技能,了解了數(shù)字圖像處理作為一門理論性和實用性很強(qiáng)學(xué)科,在日常生活中有很多的用處,例如電腦人像藝術(shù),電視中的特殊效果,自動售貨機(jī)鈔票的識別,郵政編碼的自動識別和利用指紋、虹膜、面部等特征的身份識別等。本文僅就簡單的界面切換技術(shù)以鞏固所學(xué)的基本VB操作能力和圖像處理知識,這是我大學(xué)學(xué)習(xí)中的又一項技能。
第三篇:數(shù)字圖像matlab結(jié)課作業(yè)[模版]
clear all;close all;I=imread('e:5.tif');imshow(I);I_gray=rgb2gray(I);figure,imshow(I_gray);I_gray_hist=imhist(I_gray);figure,imshow(I_gray_hist);Ibw=im2bw(I_gray,0.7);figure,imshow(Ibw);
第四篇:《數(shù)字圖像處理》
實驗五 圖像的幾何變換
一.實驗?zāi)康募耙?/p>
掌握圖像幾何變換的基本原理,熟練掌握數(shù)字圖像的縮放、旋轉(zhuǎn)、平移、鏡像和轉(zhuǎn)置的基本原理及其MATLAB編程實現(xiàn)方法。
二、實驗內(nèi)容
(一)研究以下程序,分析程序功能;輸入執(zhí)行各命令行,認(rèn)真觀察命令執(zhí)行的結(jié)果。熟悉程序中所使用函數(shù)的調(diào)用方法,改變有關(guān)參數(shù),觀察試驗結(jié)果。
1.圖像縮放 clear all, close all I = imread('cameraman.tif');Scale = 1.35;
% 將圖像放大1.35倍
J1 = imresize(I, Scale, 'nearest');
% using the nearest neighbor interpolation J2 = imresize(I, Scale, 'bilinear');
% using the bilinear interpolation imshow(I), title('Original Image');figure, imshow(J1), title('Resized Image--using the nearest neighbor interpolation ');figure, imshow(J2), title('Resized Image--using the bilinear interpolation ');help imresize
% 查看imresize使用幫助
1.95倍
I = imread('cameraman.tif');Scale = 1.96;
% 將圖像放大1.96倍
J1 = imresize(I, Scale, 'nearest');
% using the nearest neighbor interpolation J2 = imresize(I, Scale, 'bilinear');
% using the bilinear interpolation imshow(I), title('Original Image');figure, imshow(J1), title('Resized Image--using the nearest neighbor interpolation ');figure, imshow(J2), title('Resized Image--using the bilinear interpolation ');
說明:
?注意觀察不同插值方法的圖像表現(xiàn); ?改變圖像縮放因子Scale,重做上述實驗。2.圖像旋轉(zhuǎn)
clear all, close all I = imread('cameraman.tif');Theta = 45;
% 將圖像逆時針旋轉(zhuǎn)45?。
J1 = imrotate(I, Theta, 'nearest');
% using the nearest neighbor interpolation Theta =-45;
% 將圖像順時針旋轉(zhuǎn)45?。
J2 = imrotate(I, Theta, 'bilinear', 'crop');% using bilinear interpolation and crops the output image imshow(I), title('Original Image');figure, imshow(J1), title('Rotated Image--using the nearest neighbor interpolation ');figure, imshow(J2), title(' Rotated Image--using the bilinear interpolation ');% 查看imrotate使用幫助 help imrotate %-------
圖像旋轉(zhuǎn)30順時針逆時針
clear all, close all I = imread('cameraman.tif');Theta = 30;
% 將圖像逆時針旋轉(zhuǎn)30。
J1 = imrotate(I, Theta, 'nearest');
% using the nearest neighbor interpolation Theta =-30;
% 將圖像順時針旋轉(zhuǎn)30。
J2 = imrotate(I, Theta, 'bilinear', 'crop');% using bilinear interpolation and crops the output image imshow(I), title('Original Image');figure, imshow(J1), title('Rotated Image--using the nearest neighbor interpolation ');figure, imshow(J2), title(' Rotated Image--using the bilinear interpolation ');7 說明:
?注意觀察不同插值方法和輸出圖像后處理方法的圖像表現(xiàn); ?改變旋轉(zhuǎn)角度大小和方向,重做上述實驗。
3.圖像水平鏡象
clear all, close all I = imread('cameraman.tif');I1 = flipdim(I,2);
I2 = flipdim(I,1);figure(1), subplot(1,2,1), imshow(I);subplot(1,2,2), imshow(I1);figure(2), subplot(2,1,1), imshow(I);subplot(2,1,2), imshow(I2);%----
(二)用MATLAB編程實現(xiàn)以下圖像幾何變換(參考自編講義相關(guān)章節(jié))
1.圖像扭曲變換 2.球面變換
三、實驗設(shè)備
1.PIII以上微機(jī); 2.MATLAB6.5;
四、預(yù)習(xí)與思考
1.預(yù)習(xí)實驗內(nèi)容,閱讀教材熟悉實驗原理;
2.查閱資料,熟悉實驗中涉及的有關(guān)MATLAB函數(shù);
3.利用課余時間,采用MATLAB底層函數(shù)編程實現(xiàn)實驗內(nèi)容
(二)中的圖像平移、圖像轉(zhuǎn)置等幾何變換。
五、實驗報告要求
1.簡述試驗的目的和試驗原理;
2.?dāng)⑹龈鞫纬绦蚬δ埽淖冇嘘P(guān)函數(shù)的參數(shù),分析比較實驗結(jié)果; 3.打印出所編寫的實驗程序。4.寫出本實驗的心得體會及意見。
實驗六
數(shù)字圖像處理應(yīng)用
一.實驗?zāi)康募耙?/p>
1.利用MATLAB提供的圖像處理函數(shù)實現(xiàn)圖像中物體屬性的測量; 2.訓(xùn)練綜合運用MATLAB圖像處理函數(shù)的能力; 3.了解數(shù)字圖像處理基本應(yīng)用。
二、實驗內(nèi)容
以大米粒特性測量為例,綜合應(yīng)用課程中圖像分割、形態(tài)學(xué)濾波、圖像增強(qiáng)、圖像特征提取等圖像處理方法,實現(xiàn)大米粒特性自動測量。實驗過程簡述:
1. 讀取和顯示圖像 2. 估計圖像背景 3. 獲取背景均勻的圖像 4. 圖像增強(qiáng) 5. 圖像二值化分割 6. 區(qū)域標(biāo)記及為彩色處理
7. 測量圖像中的區(qū)域特性(面積、質(zhì)心等)
8.統(tǒng)計大米粒的特性分布規(guī)律。
(一)研究以下程序,分析程序功能;輸入執(zhí)行各命令行,認(rèn)真觀察命令執(zhí)行的結(jié) 果。熟悉程序中所使用函數(shù)的調(diào)用方法,改變有關(guān)參數(shù),觀察試驗結(jié)果。
% Read and Display an Image clear, close all,close all;I = imread('rice.png');
figure, imshow(I)
% Use Morphological Opening to Estimate the Background
background = imopen(I,strel('disk',15));
figure, imshow(background);
%Display the Background Approximation as a Surface
figure, surf(double(background(1:8:end,1:8:end))),zlim([0 255]);set(gca,'ydir','reverse');% Subtract the Background Image from the Original Image I2 = imsubtract(I,background);figure, imshow(I2)% Adjust the Image Contrast I3 = imadjust(I2, stretchlim(I2), [0 1]);figure, imshow(I3);% Apply Thresholding to the Image level = graythresh(I3);bw = im2bw(I3,level);figure, imshow(bw)% Determine the Number of Objects in the Image [labeled,numObjects] = bwlabel(bw,4);
% Label components.numObjects % Examine the Label Matrix RGB_label = label2rgb(labeled, @spring, 'c', 'shuffle');figure, imshow(RGB_label);% Measure Object Properties in the Image graindata = regionprops(labeled,'basic')allgrains = [graindata.Area];% Compute Statistical Properties of Objects in the Image max(allgrains);biggrain = find(allgrains==695)mean(allgrains);figure, hist(allgrains,20);12
(詳見MATLAB IPT的 幫助文檔demo中的Correcting Nonuniform Illumination)
(二)查看MATLAB IPT 幫助文檔,研究其它應(yīng)用演示
三、實驗設(shè)備 1.PIII以上微機(jī); 2.MATLAB6.5;
四、預(yù)習(xí)與思考
1.預(yù)習(xí)實驗內(nèi)容,閱讀教材熟悉實驗原理; 2.查閱資料,熟悉實驗中涉及的有關(guān)函數(shù)。
3.利用課余時間,采用MATLAB函數(shù)編程實現(xiàn)實驗內(nèi)容
(二)。
五、實驗報告要求
1.簡述試驗的目的和試驗原理;
2.?dāng)⑹龈鞫纬绦蚬δ埽淖冇嘘P(guān)函數(shù)的參數(shù),分析比較實驗結(jié)果; 3.打印出所編寫的實驗程序。4.寫出本實驗的心得體會及意見。
第五篇:數(shù)字圖像處理
中南大學(xué)
數(shù)字圖像處理實驗 實驗名稱:空間濾波和頻域濾波
班級:電子信息0802班
姓名:李哲 學(xué)號:0909080609 實驗日期:2010年12月22日
目錄
一,實驗?zāi)康???????????????????????3 二,給圖像添加噪聲????????????????????4 三,對被噪聲污染的圖像進(jìn)行中值濾波和均值濾波???????5 四,對圖像進(jìn)行空間域的銳化????????????????6 五,MATLAB以外函數(shù)空間濾波和圖像銳化??????????7 六,自帶函數(shù)傅立葉變換和反變換??????????????8 七,低通濾波器程序????????????????????9 八,心得體會 ??????????????????????10 九,參考文獻(xiàn) ??????????????????????10
一、實驗?zāi)康?1,空間濾波:
圖像平滑主要目的是減少噪聲。噪聲有很多種類,不同的噪聲有不同的抑制措施。本實驗要求用平滑線性濾波和中值濾波2種最典型、最常用的處理算法進(jìn)行程序設(shè)計,學(xué)習(xí)如何對已被噪聲污染的圖像進(jìn)行“凈化”。通過平滑處理,對結(jié)果圖像加以比較,得出自己的實驗結(jié)論。學(xué)習(xí)如何用銳化處理技術(shù)來加強(qiáng)圖像的目標(biāo)邊界和圖像細(xì)節(jié),對圖像進(jìn)行梯度算子、拉普拉斯算子,使圖像的某些特征(如邊緣、輪廓等)得以進(jìn)一步的增強(qiáng)及突出。本實驗銳化處理主要在空間域中進(jìn)行 2,頻域濾波:
掌握傅里葉變換的基本性質(zhì); 掌握傅里葉正變換和反變換; 通過實驗了解二維頻譜的分布特點; 掌握怎樣利用傅立葉變換進(jìn)行頻域濾波
利用MATLAB程序數(shù)字圖像的傅立葉變換并且進(jìn)行頻域濾波
二,給圖像添加椒鹽噪聲或者高斯噪聲: 原理:利用MATLAB自帶函數(shù)添加噪聲 程序代碼:A=imread('onion.png');I=rgb2gray(A);imshow(I);J = imnoise(I,'salt & pepper',0.05);figure,imshow(J),title('椒鹽噪聲');%添加椒鹽噪聲 K = imnoise(I,'gaussian',0,0.03);
figure,imshow(K),title('高斯噪聲');%添加高斯噪聲
三,對被噪聲污染的圖像進(jìn)行中值濾波和均值濾波: 原理:自帶函數(shù)進(jìn)行中值濾波和均值濾波 源程序:A=imread('onion.png');I=rgb2gray(A);J = imnoise(I,'salt & pepper',0.05);k2=medfilt2(J,[5 5]);k3=medfilt2(J,[7 7]);imshow(J),title('原圖');figure,imshow(k2),title('中值濾波5*5模板');figure,imshow(k3),title('中值濾波7*7模板');
四,對圖像進(jìn)行空間域的銳化: 原理:自帶函數(shù)進(jìn)行空間銳化。源程序:I=imread('coins.png');subplot(121),imshow(I),title('原圖像');H=fspecial('sobel');I2=filter2(H ,I);subplot(122),imshow(I2),title('sobel算子銳化圖像');
五,MATLAB以外函數(shù)空間濾波和圖像銳化:
源程序:I = imread('eight.tif');J = imnoise(I,'salt & pepper',0.02);K = medfilt2(J);imshow(J);title('噪聲干擾圖像')figure, imshow(K);title('medfilt2濾波圖像')X=J;a=2;b=2;k=floor(a*b/2)+1;[M,N]=size(X);uint8 Y=zeros(M,N);funBox=zeros(a,b);temp=zeros(a*b);
for i=1:M-a
for j=1:N-b
funBox=X(i:i+a,j:j+b);
temp=funBox(:);
tempSort=sort(temp);
Y(i,j)=tempSort(k);
end;end;figure, imshow(Y);title('濾波圖像')
六,利用Matlab的圖像處理工具箱中提供的函數(shù)實現(xiàn)圖像的傅立葉變換和反變換: 源程序:
A=imread('onion.png');f=rgb2gray(A);subplot(131),imshow(f),title('原圖');F=fft2(f);% 快速傅立葉變換
subplot(132),imshow(F),title('傅里葉變換')Fabs=abs(F);% 求幅頻絕對值 Fc=fftshift(Fabs);% 中心移位 SFc=log(1+Fc);% 對數(shù)變換
iFc1=ifftshift(Fc);% 中心移位的逆變換,絕對值 iF2=ifft2(iFc1);% 快速傅立葉變換的逆變換
subplot(133),imshow(iF2),title('快速傅立葉變換的逆變換')
七,低通濾波器程序:
I=imread('testpat1.png');subplot(221),imshow(I);title('原始圖像')J1=imnoise(I,'gaussian',0.02);% 疊加高斯白噪聲
subplot(222),imshow(J1);title('添加高斯白噪聲的圖像')f=double(J1);
% 數(shù)據(jù)類型轉(zhuǎn)換 g=fft2(f);
% 傅立葉變換 g=fftshift(g);
[M,N]=size(g);nn=2;
% 二階巴特沃斯(Butterworth)低通濾波器 d0=50;
% 設(shè)置截止頻率 m=fix(M/2);n=fix(N/2);for i=1:M for j=1:N
d=sqrt((i-m)^2+(j-n)^2);
h=1/(1+0.414*(d/d0)^(2*nn));% 計算低通濾波器傳遞函數(shù)
result(i,j)=h*g(i,j);end end result=ifftshift(result);J2=ifft2(result);J3=uint8(real(J2));subplot(223),imshow(J3);title('低通濾波后圖像')
心得體會
1,進(jìn)一步熟悉了Matlab軟件、編程以及圖像處理工具箱 2,學(xué)會利用自帶函數(shù)對圖像做簡單的處理,例如:均值化等。3,熟練了一些基本函數(shù)的運用,例如fspecial,imfilter等。4,加深了對MATLAB編程的理解。
5,對于試驗中的出現(xiàn)的一些問題,懂得怎樣去處理。6,通過實際操作,增強(qiáng)了自己的動手能力,把理論用于實踐。
參考文獻(xiàn):數(shù)字圖像處理第二版
MATLAB教程