第一篇:數字圖像處理課程設計
數字圖像處理課程設計
目
錄
1.課設目的..............................................................................................................................................1 2.背景與基本原理...................................................................................................................................1 2.1背景................................................................................................................................................1 2.2基本原理........................................................................................................................................1 2.2.1基本概念.................................................................................................................................1 2.2.2基本策略:.............................................................................................................................2 2.2.3邊緣檢測.................................................................................................................................3 2.2.4導數和噪聲.............................................................................................................................4 2.2.5高斯拉普拉斯(LOG).........................................................................................................4 2.2.6邊緣連接和邊緣檢測.............................................................................................................4 3.源代碼...................................................................................................................................................5 3.1對于只有車牌無車身的圖像:....................................................................................................5 3.2對于有車身和車牌連接的圖像....................................................................................................5 4.處理結果...............................................................................................................................................6 4.1對于只有車牌無車身的圖像:....................................................................................................6 4.2對于有車身和車牌連接的圖像....................................................................................................8 5.心得體會...............................................................................................................................................9 6.參考文獻...............................................................................................................................................9
數字圖像處理課程設計
1.課設目的
1)加強對數字圖像處理的理解 2)了解圖像分割的基本原理和應用
2.背景與基本原理
2.1背景
數字圖像處理(Digital Image Processing)又稱為計算機圖像處理,它是指將圖像信號轉換成數字信號并利用計算機對其進行處理的過程。是通過計算機對圖像進行去除噪聲、增強、復原、分割、提取特征等處理的方法和技術。
圖像分割是一種重要的圖像技術,在理論研究和實際應用中都得到了人們的廣泛重視。圖像分割的方法和種類有很多,有些分割運算可直接應用于任何圖像,而另一些只能適用于特殊類別的圖像。有些算法需要先對圖像進行粗分割,因為他們需要從圖像中提取出來的信息。許多不同種類的圖像或景物都可作為待分割的圖像數據,不同類型的圖像,已經有相對應的分割方法對其分割,同時,某些分割方法也只是適合于某些特殊類型的圖像分割。分割結果的好壞需要根據具體的場合及要求衡量。在本報告中是對車輛牌照中的文字和數字部分進行處理。
2.2基本原理
2.2.1基本概念
圖像分割(Image Segmentation)是指將圖像中具有特殊涵義的不同區域區分開來,這些區域是互相不交叉的,每一個區域都滿足特定區域的一致性。圖像分割是圖像識別和圖像理解的基本前提步驟
數字圖像處理課程設計
2.2.2基本策略:
(1)間斷檢測
數字圖像中三種基本類型的灰度級間斷: 點、線、邊。尋找間斷的最一般的方法是:模板檢測。圖像中任一點的模板響應為:
R?w1z1?w2z2???w9z9??wizii?19(2)點檢測
用模板檢測孤立點:
如果∣R∣≥T,則稱在模板中心位置已經檢測到一個點。例:
1)R=(-1 * 8 * 8 + 128 * 8)/9=106 2)可以設置閾值T = 64 3)若R=0,則說明檢測點與周圍點像素值相同
4)若R > T,則說明檢測點與周圍點像素值非常的不同,為孤立點
(3)線檢測
通過比較典型模板的計算值,確定一個點是否在某個方向的線上設計其它模板: 1)模板系數之和為0 2)感興趣的方向系數值較大
數字圖像處理課程設計
2.2.3邊緣檢測
邊緣是位于兩個區域的邊界線上的連續像素集合,一般而言,當人們看到有邊緣物體時,首先感覺到的便是邊緣,灰度或結構等信息的突變處稱為邊緣。邊緣上的這種變化可以通過微分算子進行檢測:
(1)一階導數:通過梯度來計算----梯度銳化法:
R?w1z1?w2z2???w9z9??wizii?19
梯度是一個矢量,其大小為:
?f(x,y)2?f(x,y)2G[f(x,y)]?()?()
?x?y
對于數字圖像可以用差分來近似微分。其差分形式為:
?f?f?f??f(x,y?1)?f(x,y)?xf??f(x?1,y)?f(x,y)y?y?x
G[f(x,y)]?{[f(x,y)?f(x?1,y)]2?[f(x,y?f(x,y?1)]2}12
G[f(x,y)]?|f(x,y)?f(x?1,y)|?|f(x,y?f(x,y?1)|
梯度大小與相鄰像素的灰度差成正比: 灰度變化大則梯度值很大,灰度變化平緩則梯度值小,灰度無變化則梯度值為0.(2)二階導數:通過拉普拉斯算子來計算
定義:一個二元圖像函數f(x,y)的拉普拉斯變換定義為:
?2f?2f?f?2?2?x?y?[f(x?1,y)?f(x?1,y)?f(x,y?1)?f(x,y?1)]?4f(x,y)2可以用多種方式表示為數字形式。對于一個3*3的區域,經驗上推薦最多的形式是
?2f?4Z5?(Z2?Z4?Z6?Z8)
拉普拉斯銳化前、(a)原圖像灰度;
(b)拉普拉斯銳化后圖像的灰度
(a)(b)3
數字圖像處理課程設計
2.2.4導數和噪聲
基于微分的邊緣檢測器,其基本依據是圖像的邊緣對應了一階導數的極大值,而二階導數則過零點。但是,假如圖像受到噪聲的影響:
f(x,y)?s(x,y)?n(x,y)。
噪聲的幅值往往很小,但頻率往往很高,比如設:
n(x,y)?asin(?x)
那么一階導數和二階導數分別為:
?n(x)?2n(x)2?a?cos(?x)??a?sin(?x)2?x
?x
2.2.5高斯拉普拉斯(LOG)
高斯拉普拉斯(Laplacian of Gaussian,LOG,或Mexican hat,墨西哥草帽)濾波器使用了Gaussian來進行噪聲去除并使用 Laplacian來進行邊緣檢測
2.2.6邊緣連接和邊緣檢測
局部處理,確定邊緣像素相似性的兩個主要性質是:(1)用于生成邊緣像素的梯度算子的響應強度
?f(x,y)??f(x0,y0)?EE是非負門限
(2)梯度向量的方向
?(x,y)??(x0,y0)?A
A是非負門限
數字圖像處理課程設計
3.源代碼
3.1對于只有車牌無車身的圖像:
%預備處理
clc;%擦去一一頁命令窗口,光標回屏幕左上角 clear all;
%圖像的讀入和初步處理 im=imread('1.png');im1=rgb2gray(im);%江源彩色圖像轉換成灰度色圖 im1=medfilt2(im1,[3 3]);%用中值濾波的圖像去噪
%對圖像進一步處理,得到有用信息
BW = edge(im1,'sobel');%用edge函數獲得灰度圖像的邊緣
[imx,imy]=size(BW);%對于邊緣獲取信息,用size函數,獲取數組的行數于列數。對于size函數中的兩個輸出
%數,size函數將數組的行數返回到第一個輸出變量imx,將數組的列數返回到第二個輸出變 %量imy
msk=[0 0 0 0 0;0 1 1 1 0;0 1 1 1 0;0 1 1 1 0;0 0 0 0 0;];B=conv2(double(BW),double(msk));%用二維卷積運算函數conv2平滑圖像,減少連接數量
L = bwlabel(B,8);% 計算連通,調用函數返回一個和B大小相同的L矩陣,包括標記了B中每個連通區域的類別標值 mx=max(max(L))% 將有連通的MX。給予L一個1和mx之間的值或者在循環中可以提取所有連接組件
% 從儲存陣列中提取圖像 figure,imshow(im);figure,imshow(im1);figure,imshow(B);
3.2對于有車身和車牌連接的圖像
%預備處理
clc;%擦去一一頁命令窗口,光標回屏幕左上角 clear all;
%圖像的讀入和初步處理 im=imread('2.jpg');im1=rgb2gray(im);%江源彩色圖像轉換成灰度色圖 im1=medfilt2(im1,[3 3]);%用中值濾波的圖像去噪
數字圖像處理課程設計
%對圖像進一步處理,得到有用信息
BW = edge(im1,'sobel');%用edge函數獲得灰度圖像的邊緣
[imx,imy]=size(BW);%對于邊緣獲取信息,用size函數,獲取數組的行數于列數。對于size函數中的兩個輸出參
%數,size函數將數組的行數返回到第一個輸出變量imx,將數組的列數返回到第二個輸出變 %量imy
msk=[0 0 0 0 0;0 1 1 1 0;0 1 1 1 0;0 1 1 1 0;0 0 0 0 0;];B=conv2(double(BW),double(msk));%用二維卷積運算函數conv2平滑圖像,減少連接數量
L = bwlabel(B,8);% 計算連通,調用函數返回一個和B大小相同的L矩陣,包括標記了B中每個連通區域的類別標值 mx=max(max(L))% 將有連通的MX。給予L一個1和mx之間的值或者在循環中可以提取所有連接組件
% 對于車牌與車身連接的圖像,給予17,,19,19,22,27,28至L用于提取完全車牌 [r,c] = find(L==17);%用find函數查詢非零元素的行和列
rc = [r c];[sx sy]=size(rc);n1=zeros(imx,imy);%創建名為n1的imx行,imy列的零矩陣
for i=1:sx x1=rc(i,1);y1=rc(i,2);n1(x1,y1)=255;end
% 從儲存陣列中提取圖像 figure,imshow(im);figure,imshow(im1);figure,imshow(B);figure,imshow(n1,[]);
4.處理結果
4.1對于只有車牌無車身的圖像:
原圖像
數字圖像處理課程設計
處理后:
數字圖像處理課程設計
總結:能夠對圖像基本信息進行簡單分離。
4.2對于有車身和車牌連接的圖像
原圖像
處理后
數字圖像處理課程設計
總結:能夠對圖像進行分離,但是對于車身與車牌信息分離不理想,有待進一步改進。
5.心得體會
在這次數字圖像處理的課程設計過程中,首先加深了我對于數字圖像處理這門課程的認識,通過對相關知識的進一步了解和掌握,清楚的認識到這門課程在實際應用的廣泛性。
通過Matlab編程的過程之中,進一步掌握了Matlab的使用,明白了這個軟件作為許多應用方向工具的強大之處,通過對一些小錯誤的改造還認識到了以往自己沒有注意到的一些小的細節問題。
6.參考文獻
1.數字圖像處理 第二版 岡薩雷斯(Rafael C.Gonzalez)
2003-03-01 2.Matlab2007-help
第二篇:數字圖像處理課程設計
1.前言
數字圖像處理技術是20世紀60年代開始發展起來的一門新興學科。近40年來,由于大規模集成電路和計算機技術的迅速發展,離散數學的創立及理論上的不斷突破,以及軍事、醫學和工業等方面應用需求的不斷增長,數字圖像處理的理論和方法發展迅速,圖像處理技術不斷完善,不僅在理論研究上取得了很大的進展,而且其應用領域也日益擴大。隨著科技的進步以及人類需求的多樣化發展,多學科的交叉、融合已成為現代科學發展的突出特色和重要途徑。因此,數字圖像處理學科正逐步向其他學科領域滲透,并為其他學科的研究和發展提供基礎性支持。
眾所周知,人類正在實踐的21世紀是一個信息時代。今天的社會,信息技術已經全面服務于社會生產和生活的方方面面,人們所做工作的相當一部分就是對信息的處理和傳輸,其中圖像是人類獲取信息、表達信息和傳遞信息的重要手段,是人類感知和認識世界的基礎。有關研究表明,日常生活中人們所接受的各種信息中圖像信息占總信息量的80%左右,從這一角度看,“百聞不如一見”正是圖像處理重要性的形象表達和經驗總結。因此,數字圖像處理技術無論是對于21世紀的科學理論研究,還是工程應用都將具有重要的影響。國內外許多有識之士指出,從某種意義上講,數字圖像處理是實現智能計算機、智能機器人或多媒體通信系統的基礎,未來計算機及智能機器人的發展與進步將在一定程度上依賴于機器視覺信息處理理論和技術的突破。雖然相對于經典學科,數字圖像處理還很年輕,但日趨成熟的數字圖像處理技術已經在很多方面得到深入而廣泛的應用,一定程度上改變了人類的生活,給人們的日常生活、學習、工作帶來極大的方便。例如,Internet上的視頻廣播、現代衛星或遙感照片的合成和處理、工業產品的自動檢測、各種醫學影像和圖像的處理、遠程醫療診斷及手術以及視頻會議、視頻電話等都采用了圖像處理技術實現實時信息交互。
在信息化的今天,信息技術已經全面服務于社會的生產和生活的各個方面。信息是抽象的,它依附在各種媒體所表示的數據中,其中,圖像信息是人類賴以獲取信息的最重要來源之一。隨著計算機技術的迅猛發展,圖像和圖形技術不斷融合,產生了各種圖像處理、CAD軟件。這些軟件被廣泛應用于計算機科學、1 工程學、統計學、物理學、信息科學、化學、生物學、醫學乃至社會科學等領域,取得了令人矚目的成就。
MATLAB自1984年由美國MathWorks公司推向市場以來,經歷了二十多年的發展,現已成為國際公認的最優秀的科技應用軟件。MATLAB既是一種直觀高效的計算機語言,同時又是一個科學計算平臺,它為數據分析和數據可視化算法和應用程序開發提供了最核心的數學和高級圖形工具。根據它提供的500多個數學和工程函數,工程技術人員和科學工作者可以在它的集成環境中交互或編程以完成各自的計算。
正是由于MATLAB的各種優勢和特點,以及其版本的不斷更新和功能的不斷完善和強大,特別是它在圖形處理上的優越性,本次課程設計就是利用MATLAB圖像處理工具箱函數來進行圖像增強。2.設計的內容
本次課程設計我做的題目是“基于matlab圖像增強的比較及其理論分析”,圖像增強所包含的主要內容如下圖:
???灰度變換???
?均衡化?????點運算?直方圖修正法?規定化 ???空間域???局部統計法? ??????圖像平滑? 局部運算????圖像銳化?? ?圖像增強??高通濾波?
?
頻率域?低通濾波??同態濾波增強? ????假彩色增強
??彩色增強?偽彩色增強? ?彩色變換及應用??? ??圖像的代數運算
圖像增強是采用一系列技術去改善圖像的視覺效果,或將圖像轉換成一種更適合于人或機器進行分析和處理的形式。例如采用一系列技術有選擇的突出某些感興趣的信息,同時抑制一些不需要的信息,提高圖像的使用價值。鑒于以上理論知識,我先在網上下載一幅灰度圖片,然后對其依次進行如下操作: 1.將該圖片導入MATLAB工作平臺;
2.利用MATLAB圖像處理工具箱提供的模擬噪聲生成函數imnoise,分別對該圖片模擬加入高斯噪聲和椒鹽噪聲;
3.利用MATLAB軟件對加入噪聲的該圖片進行中值濾波和均值濾波處理; 4.記錄處理后生成的圖樣,比較分析哪種方法增強效果最佳。3.流程圖 4.總體方案設計及原理
4.1驗證圖片是否為灰度圖片
本次課設要求是對灰度圖片進行處理,因此必須保證是灰度圖片,在MATLAB中能實現對圖片屬性的查看。在MATLAB命令輸入窗中,調用函數info=imfinfo(‘FILENAME.FMT’)。如查看我用的圖片屬性,在命令窗口輸入info=imfinfo('植物大戰僵尸.JPG'),得到如下結果: info =
Filename: '植物大戰僵尸.JPG'
FileModDate: '22-Jun-2009 14:23:46'
FileSize: 177051
Format: 'jpg'
FormatVersion: ''
Width: 601
Height: 812
BitDepth: 8
ColorType: 'grayscale'
FormatSignature: ''
NumberOfSamples: 1
CodingMethod: 'Huffman'
CodingProcess: 'Sequential'
Comment: {} 在ColorType: 'grayscale'
屬性行如此顯示,則說明以劉亦菲.JPG命名的文件為灰度圖像。
4.2導入圖片到MATLAB工作平臺
首先在MATLAB命令窗口中將其執行路徑更改到要處理的灰度圖片的路徑,然后讀取圖像。函數imread可以從任何MATLAB支持的圖像文件格式中,以任意位深度讀取一幅圖像。格式為:
[X,MAP]=imread(‘FILENAME.FMT’),其中:
FILENAME-為需要讀入的圖像文件名稱,FMT-為圖像格式。4.3對圖片模擬加入高斯噪聲和椒鹽噪聲
Matlab圖像處理工具箱提供了模擬噪聲生成的函數imnoise,格式為: J=imnoise(I,type)J=imnoise(I,type,parameters)其中:
I為輸入圖像,J為疊加噪聲后的圖像。type為噪聲類型,parameters為各噪聲相應的參數。常用的噪聲類型如下: J=imnoise(I,'gaussian',M,V)均值M,方差為V的高斯噪聲。M、V的缺省值為0、0.01; J=imnoise(I,'salt & pepper',D)噪聲濃度為D的椒鹽噪聲。D的缺省值為0.05; J=imnoise(I,'speckle',V)方差為V的乘法性噪聲。V的缺省值為0.04。
4.4顯示原圖片和加入噪聲的圖片
本次用到的MATLAB的圖像顯示函數為imshow,格式為: imshow(I,n)其中:
I-為圖片的代碼,n-為顯示灰度級為n的圖像,n缺省為256。
4.5中值濾波處理
MATLAB圖像處理工具箱中,提供了medfilt2和ordfilt2函數,用于實現中值濾波。
medfilt2格式為:
B=medfilt2(A,[m n])其中:
A為輸入圖像,B為輸出圖像,[m n]為窗口大小,缺省為[3 3]。ordfilt2的格式為:
Y=ordfilt2(X,order,domain)其中:
X為輸入圖像,Y為輸出圖像,order為濾波器輸出順序值,domain為濾波窗口矩陣。
Y=ordfilt2(X,5,ones(3,3))%中值濾波Y=medfilt2(X,[3 3])Y=ordfilt2(X,1,ones(3,3))%最小濾波 Y=ordfilt2(X,9,ones(3,3))%最大濾波 4.6均值濾波處理
MATLAB圖像處理工具箱提供了filter2和fspecial函數用于對圖像進行均值濾波。
(1)filter2用于對圖像作卷積濾波,格式為: B=filter2(h,A,shape)其中:
A為輸入圖像,h為濾波算子,B為輸出圖像,shape為指定濾波計算范圍: shape='full'時,作邊界補0 shape='same'時,返回的圖像B與輸入的圖像A大小相同 shape='valid'時,補考慮邊界補0,只計算有效輸出部分。(2)fspecial用于產生預定義的濾波算子,格式為: h=fspecial(type,para)其中:
參數type指定算子類型,para為指定相應的參數。type='average',表示為均值濾波器,para默認為3 4.7源代碼
I=imread('植物大戰僵尸.JPG');
%讀取圖片
J1=imnoise(I,'gaussian',0,0.04);%加入高斯噪聲,均值為0方差為0.04
J2=imnoise(I,'salt & pepper',0.09);%加入椒鹽噪聲,噪聲濃度為0.09 K1 = medfilt2(J1);
%對圖片J1進行中值濾波 K2 = medfilt2(J2);
%對圖片J2進行中值濾波 K3 = filter2(fspecial('average',1),J1);%對圖片J1進行均值濾波 K4 = filter2(fspecial('average',1),J2);%對圖片J2進行均值濾波 Pause
%程序執行暫停 figure(1)subplot(1,3,1)
%子圖方式顯示 imshow(I)
%顯示圖片I title('原始圖片')
%給圖片加入標題 subplot(1,3,2)imshow(J1)title('高斯噪聲')subplot(1,3,3)imshow(J2)title('椒鹽噪聲')pause figure(2)subplot(2,2,1)imshow(I)title('原始圖片')subplot(2,2,2)imshow(J1)title('高斯噪聲')subplot(2,2,3)imshow(K1)title('中值濾波')subplot(2,2,4)imshow(K3)title('均值濾波')pause figure(3)subplot(2,2,1)imshow(I)title('原始圖片')subplot(2,2,2)imshow(J2)title('椒鹽噪聲')subplot(2,2,3)imshow(K2)title('中值濾波')subplot(2,2,4)imshow(K4)title('均值濾波')4.8結果顯示
在MATLAB命令窗口中輸入上述代碼,按下回車鍵,就可以顯示結果,如下面三幅圖所示 5.結果分析
5.1均值濾波
均值濾波是最簡單的均值濾波,均值簡單的平滑了一幅圖像的局部變化,在模糊了圖像的同時減少了噪聲,但在濾波過程中會丟失圖像細節,如第5幅和第6幅圖像所示,當該圖像的參數shape='full'時,作邊界補0,因此后兩幅看起來就是“空白”,幾乎丟失了圖像的全部細節。如果對圖像干擾的某一噪聲具有這樣的特點:對圖像中任意相鄰兩點的干擾是互不相關的。那么,若某一象素中含有噪聲,而其它周圍的鄰點卻不一定有噪聲。因此,和鄰近各點相比,該點的灰度值將有顯著的不同。
這樣就可以從圖像中取一子區域(稱為鄰域),其內含若干象素,要處理的象素位于鄰域的中心。然后求出鄰域中各象素(不包含要處理的象素點)的灰度平均值:
g(m,n)?1?f(m?1,n)?f(m?1,n)?f(m,n?1)?f(m,n?1)? 4由于圖像中相鄰象素之間有很強的相關性,如果該點(m,n)無噪聲,則其灰度應和鄰域平均值基本相等,反之,兩者有明顯差別。
這是用鄰域平均值代替該點的灰度值,可以在一定程度上消除噪聲。
5.2中值濾波
中值濾波的應用非常廣泛,因為對于很多種隨機噪聲,它都有良好的去噪能力,且在相同尺寸下比線性平滑濾波引起的模糊更少。中值濾波尤其對單極或雙極脈沖噪聲非常有效。
最大值濾波對發現圖像中的最亮點非常有用。同樣,因為“胡椒”噪聲是非常低的值,作為子圖像區域的最大值選擇結果,他可以通過這種濾波消除;最小值濾波對發現圖像中的最暗點非常有用。同樣,作為最小值操作的結果,它可以用來消除“鹽”噪聲。對于高斯和均勻隨機分布這類噪聲有最好的效果。設有一序列:
?fi???f1,f2,...,fn?
有n個值,在序列中任取m個連續值:
fi?v,fi?v?1,...,fi?1,fi,fi?1,...,fi?v?1,fi?v m為奇數3、5、7等: m?2v?1
將這m個值從小到大排序,取中間值作為濾波器輸出,表示為:
fi'?med?fi?v,...,fi,...,fi?v?,i?1,2,...,n。例如:fi為
...0 3 4 4 5 3 2 0 1 4 3 0...取m為3時的中值濾波:
...0 3 4 4 4 3 2 1 1 3 3 0...取m為3時的平滑濾波:
...0 7/3 11/3 4 11/3 3 2 4/3 5/3 7/3...中值濾波不影響階躍函數和斜波函數,周期小于m/2的脈沖將抑制,三角函數頂部變平。因此可以消除噪聲
通過觀察第2幅圖可以看出,經medfilt2函數處理椒鹽噪聲后的圖像幾乎復原了原始圖像,其效果比相同條件下的高斯噪聲處理要好很多。綜合分析上述各幅圖像我們可以得出結論:在處理椒鹽噪聲的問題上,中值濾波比均值濾波更優越;在處理高斯噪聲的問題上,均值濾波比中值濾波效果稍微好一點。6.心得體會
經過一個多星期的關于數字圖像處理的課程設計,在老師和同學的幫助下,我基本上完成了這次任務,通過這次課程設計我收獲頗多,概而言之,大約以下幾點:
一、溫故而知新。課程設計發端之始,思緒全無,舉步維艱,對于理論知識學習不夠扎實的我深感“書到用時方恨少”,于是想起圣人之言“溫故而知新”,便重拾教材與實驗手冊,對知識系統而全面進行了梳理,遇到難處先是苦思冥想再向同學請教,終于熟練掌握了基本理論知識,而且領悟諸多平時學習難以理解掌握的較難知識,學會了如何思考的思維方式,找到了設計的靈感。
二、理論聯系實際。通過這次課程設計使我懂得了理論與實際相結合是很重要的,只有理論知識是遠遠不夠的,只有把所學的理論知識與實踐相結合起來,從理論中得出結論,才能真正為社會服務,從而提高自己的實際動手能力和獨立思考的能力。在設計的過程中遇到問題,可以說得是困難重重,值得一提的是剛開始在濾波問題上我被卡住了,我以為是下載的MATLAB軟件沒有這個庫函數,卸載后裝上另一款,結果還是不能解決,請教了很多同學才發現要處理的圖片根本不是灰度圖片,重新換了張圖片就成功了。這畢竟是第一次做的,難免會遇到過各種各樣的問題,同時在設計的過程中發現了自己的不足之處,對以前所學過的知識理解得不夠深刻,掌握得不夠牢固。
總的來說,這次設計的關于圖像處理的課程設計還是比較成功的,在設計中遇到了很多問題,最后在老師的辛勤的指導下,終于游逆而解,有點小小的成就感,終于覺得平時所學的知識有了實用的價值,達到了理論與實際相結合的目的,不僅學到了不少知識,而且鍛煉了自己的能力,更加強了團隊合作的意識,使自己對以后的路有了更加清楚的認識,同時,對未來有了更多的信心。最后,對給過我幫助的所有同學和各位指導老師再次表示忠心的感謝!
參考文獻
[1] R.C.Gonzalez, R.E.Woods, S.L.Eddins,數字圖像處理(MATLAB版)阮秋琦 等譯, 北京:電子工業出版社,2007.10.[2]孫祥 徐流美 吳清編著,MATLAB7.0基礎教程 北京:清華大學出版社,2005.5.[3] 吳國平主編,數字圖像處理原理 北京:電子工業出版社,2007.9 [4] 王慧琴主編,數字圖像處理 北京:高等教育出版社,2006.5 [5] 霍宏濤主編,數字圖像處理 北京:清華大學出版社,2002.9
第三篇:數字圖像處理課程設計課程教學大綱
《數字圖像處理課程設計》課程教學大綱
Digital Imaging Processing Course Design
課程代碼: 課程性質:設計(論文)適用專業:電子信息工程 開課學期:6 總學時數:16 執 筆:何家峰
一、課程的性質和目的
本課程是電子信息工程專業的課程設計。本課程的學習目的在于:針對給定的圖像處理任務,在查閱相關文獻的基礎上,制定相應的技術方案,并編程實現;通過課程設計,使得學生進一步理解數字圖像處理的基本概念、基本原理和基本方法,并培養學生的自學能力和實踐能力(設計能力與編程實現能力)。
總學分數:1 編寫年月:2006.9 修訂年月:2007.7
二、課程教學內容及學時分配
課程設計最好是一個典型的數字圖像處理任務,即包括圖像增強、圖像分割、圖像表達與描述。學生可以選取下面的任一圖像處理任務作為課程設計的目標:
1、手寫數字識別;
2、掌紋識別;
3、虹膜識別;
4、其他的典型圖像處理任務。
三、課程教學的基本要求
本課程是電子信息工程專業的設計(論文)課程,實踐性較強。要求能查閱相關文獻資料,具備制定相應技術路線的能力,以及應用MATLAB語言或VC語言進行數字圖像處理編程與調試的能力。
1、課程設計報告應包含的內容:課程設計目的介紹;技術路線及制定依據;軟件清單;實驗結果;結果分析與改進措施等。
2、考試與成績評定:可采用面試與審閱設計報告結合的形式。總評成績:課程設計期間 的表現占30%;面試占70%。
四、本課程與其它課程的聯系與分工
先修課程:數字圖像處理。后續課程:無。
五、建議教材及教學參考書
[1]Rafael C.Gonzalez, Richard E.Woods 著,《數字圖像處理(第二版)》,電子工業出版社,2006年出版
[2]Rafael C.Gonzalez, Richard E.Woods, Steven L.Eddins 著,《數字圖像處理(MATLAB版)》,電子工業出版社,2006年出版
[3]李弼程,彭天強,彭波 等編著,《智能圖像處理技術》,電子工業出版社,2004年出版
[4]何東健,耿楠,張義寬 等編,《數字圖像處理》,西安電子科技大學出版社,2005年出版
注:
1、“課程代碼”由教務處教研科統一填寫;
2、“課程性質”按培養方案的“課程性質”及“必/選修”兩欄填寫;
3、“適用專業”按招生簡章填寫;
4、“開課學期”指1~8(10)中的數字,例如“大學英語”課程的開課學期為1、2、3、4;
第四篇:《數字圖像處理》
實驗五 圖像的幾何變換
一.實驗目的及要求
掌握圖像幾何變換的基本原理,熟練掌握數字圖像的縮放、旋轉、平移、鏡像和轉置的基本原理及其MATLAB編程實現方法。
二、實驗內容
(一)研究以下程序,分析程序功能;輸入執行各命令行,認真觀察命令執行的結果。熟悉程序中所使用函數的調用方法,改變有關參數,觀察試驗結果。
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 ');
說明:
?注意觀察不同插值方法的圖像表現; ?改變圖像縮放因子Scale,重做上述實驗。2.圖像旋轉
clear all, close all I = imread('cameraman.tif');Theta = 45;
% 將圖像逆時針旋轉45?。
J1 = imrotate(I, Theta, 'nearest');
% using the nearest neighbor interpolation Theta =-45;
% 將圖像順時針旋轉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 %-------
圖像旋轉30順時針逆時針
clear all, close all I = imread('cameraman.tif');Theta = 30;
% 將圖像逆時針旋轉30。
J1 = imrotate(I, Theta, 'nearest');
% using the nearest neighbor interpolation Theta =-30;
% 將圖像順時針旋轉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 說明:
?注意觀察不同插值方法和輸出圖像后處理方法的圖像表現; ?改變旋轉角度大小和方向,重做上述實驗。
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編程實現以下圖像幾何變換(參考自編講義相關章節)
1.圖像扭曲變換 2.球面變換
三、實驗設備
1.PIII以上微機; 2.MATLAB6.5;
四、預習與思考
1.預習實驗內容,閱讀教材熟悉實驗原理;
2.查閱資料,熟悉實驗中涉及的有關MATLAB函數;
3.利用課余時間,采用MATLAB底層函數編程實現實驗內容
(二)中的圖像平移、圖像轉置等幾何變換。
五、實驗報告要求
1.簡述試驗的目的和試驗原理;
2.敘述各段程序功能,改變有關函數的參數,分析比較實驗結果; 3.打印出所編寫的實驗程序。4.寫出本實驗的心得體會及意見。
實驗六
數字圖像處理應用
一.實驗目的及要求
1.利用MATLAB提供的圖像處理函數實現圖像中物體屬性的測量; 2.訓練綜合運用MATLAB圖像處理函數的能力; 3.了解數字圖像處理基本應用。
二、實驗內容
以大米粒特性測量為例,綜合應用課程中圖像分割、形態學濾波、圖像增強、圖像特征提取等圖像處理方法,實現大米粒特性自動測量。實驗過程簡述:
1. 讀取和顯示圖像 2. 估計圖像背景 3. 獲取背景均勻的圖像 4. 圖像增強 5. 圖像二值化分割 6. 區域標記及為彩色處理
7. 測量圖像中的區域特性(面積、質心等)
8.統計大米粒的特性分布規律。
(一)研究以下程序,分析程序功能;輸入執行各命令行,認真觀察命令執行的結 果。熟悉程序中所使用函數的調用方法,改變有關參數,觀察試驗結果。
% 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 幫助文檔,研究其它應用演示
三、實驗設備 1.PIII以上微機; 2.MATLAB6.5;
四、預習與思考
1.預習實驗內容,閱讀教材熟悉實驗原理; 2.查閱資料,熟悉實驗中涉及的有關函數。
3.利用課余時間,采用MATLAB函數編程實現實驗內容
(二)。
五、實驗報告要求
1.簡述試驗的目的和試驗原理;
2.敘述各段程序功能,改變有關函數的參數,分析比較實驗結果; 3.打印出所編寫的實驗程序。4.寫出本實驗的心得體會及意見。
第五篇:數字圖像處理
中南大學
數字圖像處理實驗 實驗名稱:空間濾波和頻域濾波
班級:電子信息0802班
姓名:李哲 學號:0909080609 實驗日期:2010年12月22日
目錄
一,實驗目的???????????????????????3 二,給圖像添加噪聲????????????????????4 三,對被噪聲污染的圖像進行中值濾波和均值濾波???????5 四,對圖像進行空間域的銳化????????????????6 五,MATLAB以外函數空間濾波和圖像銳化??????????7 六,自帶函數傅立葉變換和反變換??????????????8 七,低通濾波器程序????????????????????9 八,心得體會 ??????????????????????10 九,參考文獻 ??????????????????????10
一、實驗目的 1,空間濾波:
圖像平滑主要目的是減少噪聲。噪聲有很多種類,不同的噪聲有不同的抑制措施。本實驗要求用平滑線性濾波和中值濾波2種最典型、最常用的處理算法進行程序設計,學習如何對已被噪聲污染的圖像進行“凈化”。通過平滑處理,對結果圖像加以比較,得出自己的實驗結論。學習如何用銳化處理技術來加強圖像的目標邊界和圖像細節,對圖像進行梯度算子、拉普拉斯算子,使圖像的某些特征(如邊緣、輪廓等)得以進一步的增強及突出。本實驗銳化處理主要在空間域中進行 2,頻域濾波:
掌握傅里葉變換的基本性質; 掌握傅里葉正變換和反變換; 通過實驗了解二維頻譜的分布特點; 掌握怎樣利用傅立葉變換進行頻域濾波
利用MATLAB程序數字圖像的傅立葉變換并且進行頻域濾波
二,給圖像添加椒鹽噪聲或者高斯噪聲: 原理:利用MATLAB自帶函數添加噪聲 程序代碼: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('高斯噪聲');%添加高斯噪聲
三,對被噪聲污染的圖像進行中值濾波和均值濾波: 原理:自帶函數進行中值濾波和均值濾波 源程序: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模板');
四,對圖像進行空間域的銳化: 原理:自帶函數進行空間銳化。源程序:I=imread('coins.png');subplot(121),imshow(I),title('原圖像');H=fspecial('sobel');I2=filter2(H ,I);subplot(122),imshow(I2),title('sobel算子銳化圖像');
五,MATLAB以外函數空間濾波和圖像銳化:
源程序: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的圖像處理工具箱中提供的函數實現圖像的傅立葉變換和反變換: 源程序:
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);% 對數變換
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);
% 數據類型轉換 g=fft2(f);
% 傅立葉變換 g=fftshift(g);
[M,N]=size(g);nn=2;
% 二階巴特沃斯(Butterworth)低通濾波器 d0=50;
% 設置截止頻率 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));% 計算低通濾波器傳遞函數
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,進一步熟悉了Matlab軟件、編程以及圖像處理工具箱 2,學會利用自帶函數對圖像做簡單的處理,例如:均值化等。3,熟練了一些基本函數的運用,例如fspecial,imfilter等。4,加深了對MATLAB編程的理解。
5,對于試驗中的出現的一些問題,懂得怎樣去處理。6,通過實際操作,增強了自己的動手能力,把理論用于實踐。
參考文獻:數字圖像處理第二版
MATLAB教程