引言
數字圖像處理(Digital Image Processing)是指利用計算機對圖像進行去除噪聲、增強、復原、分割、提取特征等的理論、方法和技術。一般,圖像處理是用計算機和實時硬件實現的,因此也稱之為計算機圖像處理(Computer Image Processing)。
在日常生活中,圖像處理已經得到廣泛應用。例如,電腦人像藝術,電視中的特殊效果,自動售貨機的鈔票識別,郵政編碼的自動識別和利用指紋、虹膜、面部等特征的身份識別等。在醫學領域,很早以前就采用X射線透視、顯微鏡照片等來診斷疾病。現在,計算機圖像處理已成為疾病診斷的重要手段,用一般攝影方法不能獲取的身體內部的狀況,也能由特殊的圖像處理裝置獲取,最具有代表性的就是X射線CT(Computed Tomograph,計算機斷層攝像)。
1 數字圖像處理的目的
一般而言,對圖像進行加工和分析主要有如下三方面的目的:
(1)提高圖像的視感質量,以達到賞心悅目的目的。如去除圖像中的噪聲,改變圖像的亮度、顏色,增強圖像中的某些成份、抑制某些成份,對圖像進行幾何變換等,從而改善圖像的質量,以達到或真實的、或清晰的、或色彩豐富的、或意想不到的藝術效果。
(2)提取圖像中所包含的某些特征或特殊信息,以便于計算機分析,例如,常用作模式識別、計算機視覺的預處理等。這些特征包括很多方面,如頻域特性、灰度/顏色特性、邊界/區域特性、紋理特性、形狀/拓撲特性及關系結構等。
(3)對圖像數據進行變換、編碼和壓縮,以便于圖像的存儲和傳輸。
2 數字圖像處理研究的主要內容
不管圖像處理是何種目的,都需要用計算機圖像處理系統對圖像數據進行輸入、加工和輸出,因此數字圖像處理研究的內容主要有以下7個過程。
(1)圖像獲取、表示和表現。(Image Acquisition, Representation and Presentation)
該過程主要是把模擬圖像信號轉化為計算機所能接受的數字形式,以及把數字圖像顯示和表現出來(如打印)。這一過程主要包括攝取圖像、光電轉換及數字化等幾個步驟。
(2)圖像復原。(Image Restoration)
當造成圖像退化(圖像品質下降)的原因已知時,復原技術可以對圖像進行校正。圖像復原最關鍵的是對每種退化都需要有一個合理的模型。
(3)圖像增強。(Image Enhancement)
圖像增強是對圖像質量在一般意義上的改善。當無法知道圖像退化有關的定量信息時,可以使用圖像增強技術較為主觀地改善圖像的質量。所以,圖像增強技術是用于改善圖像視感質量所采取的一種方法。
(4)圖像分割。(Image Segmentation)
把圖像分成區域的過程就是圖像分割。圖像中通常包含多個對象,例如,一幅醫學圖像中顯示出正常的或有病變的各種器官和組織。圖像處理為達到識別和理解的目的,幾乎都必須按照一定的規則將圖像分割成區域,每個區域代表被成像的一個物體(或部分)。圖像自動分割是圖像處理中最困難的問題之一。
(5)圖像分析。(Image Analyse)
圖像處理應用的目標幾乎均涉及圖像分析,即對圖像中的不同對象進行分割、特征提取和表示,從而有利于計算機對圖像進行分類、識別和理解。
(6)圖像重建。(Image Reconstruction)
圖像重建與上述的圖像增強、圖像復原等不同。圖像增強、圖像復原的輸入是圖像,處理后輸出的結果也是圖像,而圖像重建是指從數據到圖像的處理,即輸入的是某種數據,而經過處理后得到的結果是圖像,CT就是圖像重建處理的典型應用實例。
(7)圖像壓縮編碼(Image Coding)
圖像編碼主要是利用圖像信號的統計特性和人類視覺的生理學及心理學特性,對圖像信號進行高效編碼,即研究數據壓縮技術,目的是在保證圖像質量的前提下壓縮數據,便于存儲和傳輸,以解決數據量大的矛盾。
3 Matlab和圖像處理工具箱的背景知識
Matlab是一種交互系統,其基本數據元素是并不要求確定維數的一個數組。這就允許人們用公式化方法求解許多技術計算問題,特別是涉及矩陣表示的問題。Matlab是matrix laboratory的縮寫,由LINPACK和ELSPACK項目開發,最初用于矩陣處理。Matlab對于研究、開發和分析也是首選的計算工具。Matlab中補充了許多針對于特定應用的工具箱。圖象處理工具箱是一個Matlab函數,它擴展了Matlab解決圖象處理問題的能力。
4 基于MATLAB的實驗系統
(1)功能。
利用ORL頭像數據庫,利用KL算法(PCA)實現對其中任意一個人的檢索(用Matlab實現)。
(2)主要程序。
function example(flag)
if nargin<1;flag=’startup’;end%允許在無宗量輸入下,調用該函數
clf reset % <1>
……
set(gcf,’menubar’,’none’);%刪除圖形窗工具條
str=’數字圖象處理作業’;
set(gcf,’name’,str,’numbertitle’,’off’);%書寫圖形窗名
……
set(h_sub2,’callback’,[...%%執行關閉命令后,產生回調操作
’close,’,]);……%
……
function mbookzzy(filename)
%mbookzzy.m在MATLAB指令窗中創建或打開Notebook文件
%filename已有的Notebook文件全名(或包含路徑名和擴展名的)字符串
%調用mbookzzy新建Notebook文件
%mbookzzy(filename)打開已有Notebook文件
wp1=’progra~1’;%DOS識別’program files’目錄的簡約符
wp2=’micros~2’;%DOS識別microsoft office’目錄的簡約符
wtm=’作業’;%DOS識別’templates’目錄的簡約符
wpathzzy=[’c:\’,wp1,’\’,wp2,’\office\winword.exe’];
templatezzy=[’e:\’,wtm,’\題目要求.doc’];
czzy=’/mmwNewNotebookFromCmdLines’;
switch(nargin)
case(0)
dos([wpathzzy,templatezzy,czzy]);
case(1)
if~exist(filename)
error(’指定文件不在路徑上或不存在。’)
end
dos([wpathzzy,filename,’’]);
end.