讀古今文學網 > 刷臉背後:人臉檢測 人臉識別 人臉檢索 > 2.1 數字圖像處理的基本概念 >

2.1 數字圖像處理的基本概念

數字圖像處理(Digital Image Processing)又稱為計算機圖像處理,它是指將圖像信號轉換成數字信號並利用計算機對其進行處理的過程。所以計算機處理的圖像都是數字化的圖像。在MATLAB中,圖像都是以數值矩陣的形式存在和處理的。

2.1.1 像素

像素是構成數字圖像的基本單位。一張圖片尺寸為600×300像素,即表示橫向有600個像素,縱向有300個像素。在數字圖像中,每個像素都有對應的數值,二進製圖像的像素值為0或1,灰度圖像的像素值為0~255,由這些像素值組成的數字圖像才能被計算機進行處理。一個像素的具體長度與顯示器的分辨率有關,在Photoshop中,1厘米=28.346像素,此時1像素=0.035 278厘米。

2.1.2 分辨率

分辨率可分為屏幕分辨率(顯示分辨率)、圖像分辨率、打印分辨率(dpi)三個主要類別。下面主要介紹屏幕分辨率和圖像分辨率的概念。

1.屏幕分辨率

屏幕分辨率就是計算機顯示器的屏幕上能顯示信息的數量,即能顯示的像素個數,通常以水平和垂直像素數量來衡量。一台計算機顯示器的分辨率為1600×900像素,表示該顯示器水平方向上能顯示1600個像素,垂直方向上能顯示900個像素。對於同一台顯示器來說,分辨率越高,能顯示的像素就越多,屏幕就越清晰。

查看計算機顯示器屏幕分辨率的方式有:(1)通過在計算機(Windows 7操作系統)的桌面上單擊鼠標右鍵,選擇「屏幕分辨率」,如圖2-1所示。(2)打開「控制面板」,選擇「外觀和個性化」→「顯示」→「調整屏幕分辨率」。調整屏幕分辨率的窗口如圖2-2所示,可以看到屏幕分辨率有多種選擇,如1600×900、1024×768、800×600等。通過調整分辨率,觀察顯示器的清晰程度,可以看到分辨率越高,顯示器屏幕越清晰。

圖2-1 Windows 7操作系統中查看屏幕分辨率的方法

圖2-2 Windows 7操作系統中調整屏幕分辨率窗口

在實際應用中,顯示設備(如顯示器、平板電腦、手機屏幕等)的分辨率也經常用每英吋包含的像素個數(Pixels Per Inch,PPI),即每英吋像素數(像素密度)來表示。該值越大,畫面的細節就越豐富;該值越小,圖像顯示就越大。已知屏幕尺寸和屏幕分辨率時,就可以計算該屏幕的PPI。例如,一個5英吋、分辨率為1280×720像素的手機屏幕,其PPI=sqrt(1280×720/5)=429ppi。類似地,已知屏幕的PPI及其尺寸時,也可以計算屏幕分辨率。2010年,史蒂夫·喬布斯(Steve Jobs)在iPhone 4發佈會上介紹視網膜技術時,他是這樣闡述的:「當你所拿的東西距離你10~12英吋(約25~30厘米)時,它的分辨率只要在300ppi這個『神奇數字』以上,人眼的視網膜就無法分辨出像素點了。」因此,iPhone 4屏幕的像素密度就設定在326ppi。

2.圖像分辨率

圖像的分辨率就是圖像的尺寸,也稱為圖像的寬和高,即水平方向上的像素個數和垂直方向上的像素個數。一張分辨率為640×480像素的圖片,有480行像素信息,每行有640個像素,該圖片包含的像素個數是307 200,也就是我們常說的30萬像素。而一個分辨率為1600×1200像素的圖片,就達到了約200萬的像素。

在實際應用中,視頻畫面的分辨率經常用多少P表示,它表示一個視頻畫面的垂直像素數,下面將詳細介紹。

3.視頻分辨率

經常說某個視頻是720P或1080P,P指的是Progressive,即逐行掃瞄。480P是640×480像素的分辨率。720P是由美國電影電視工程協會制定的一種高清電視格式,即1280×720像素的分辨率。後來又出現了1080P的格式,即分辨率為1920×1080像素。現實生活中,不同的視頻網站對標清、高清、超清有不同的定義,通常情況下,標清視頻畫面的分辨率小於等於480P,而高清視頻畫面的分辨率為720P(視頻中畫面的分辨率為1280×720像素),超清視頻畫面的分辨率則為1080P(視頻中畫面的分辨率為1920×1080像素)。

2.1.3 圖像的色調、亮度和飽和度

1.圖像的色調

色調就是通常意義下的彩色,它隨波長的變化而變化,反映理論顏色的基本特徵。在三原色中,可見光的波長為380~780nm(納米),不同波長呈現出不同的顏色,可見波長從長到短依次為紅、橙、黃、綠、青、藍、紫。紅色的波長為700nm、綠色的波長為546.1nm、藍色的波長為435.8nm。只有單一波長成分的光稱為單色光,含有兩種以上波長成分的光稱為復合光。色彩通常都是由一種單色光和白光按照一定比例混色的。色調和飽和度合稱為色度,色度表示的是色彩的純度。色度反映顏色的色調和飽和度。顏色由亮度和色度共同表示。

2.圖像的亮度

亮度是人眼對光強度的感受,圖像的亮度就是圖像中光的強度。不同波長的光有著不同的色調,給人不同的顏色感受,也給人不同的亮度感受。人眼一般感到紅光最暗,藍光次之,而黃綠光最亮。

數字圖像由數值矩陣表示,每個數值都是圖像的像素值。下面我們借助MATLAB工具,介紹如何通過修改像素值改變圖像的亮度。

我們使用MATLAB圖像處理工具箱中的imadd函數,讓數字圖像的像素值增加一個常數,從而改變圖像的亮度;也可以利用MATLAB圖像處理工具箱中的immultiply函數,讓數字圖像矩陣乘以一個常數,如果常數大於1,則圖像的亮度增強,否則圖像的亮度將降低,圖像變暗。下面我們通過Code1介紹如何利用這些函數改變圖像的亮度。

Code1:ch2_1.m

運行Code1後,結果如圖2-3所示。我們可以看到,處理後的圖像(b)、(c)和原圖像(a)相比,亮度明顯增加;圖像(d)的亮度和原圖像(a)相比,明顯降低。

圖2-3 不同圖像亮度的試驗結果

此外,還可以利用MATLAB中的其他函數改變圖像的亮度,如imadjust函數(調整參數Gamma,如果Gamma小於1,則圖像亮度增加;如果Gamma大於1,則圖像亮度變暗)、brighten函數(調整參數Beta,如果0<Beta<1,則圖像亮度增加;如果-1<Beta<0,則圖像亮度變暗)。讀者可以查閱MATLAB幫助文檔進行這些函數的學習。

3.圖像的飽和度

色彩的飽和度就是顏色的純淨度,飽和度越高,色彩越鮮明。色彩的飽和度取決於顏色中白光的比例,色彩中的白光越多,飽和度就越低。純單色光的飽和度為100%,純白光的飽和度為0%。

下面我們通過使用Photoshop調整一幅圖像的飽和度,觀察調整前後圖像的變化。具體步驟如下:

(1)在Photoshop中打開一幅圖像,如圖2-4(a)所示。

(2)選擇「圖像」→「調整」→「色相/飽和度」,打開「色相/飽和度」對話框,如圖2-5所示。

(3)調整飽和度的值。將飽和度調整為100,對應的圖片如圖2-4(b)所示;將飽和度調整為-100,對應的圖片如圖2-4(c)所示。

圖2-4 同一圖片不同飽和度值的變化

圖2-5 「色相/飽和度」對話框

上面已經提到,色調和飽和度合稱為色度。亮度和色度(色調和飽和度)共同決定了圖像的特性。

2.1.4 圖像的對比度

對比度是圖像的黑白之間的差異,差異越大,則對比度越大,能表示的顏色就越豐富。但是現在還沒有通用標準來衡量對比度,需要依靠人的眼睛進行判斷。

在MATLAB中,函數imadjust可以增加圖片的對比度,格式如下。

Newimg=imadjust(img);

下面我們通過Code2瞭解如何利用函數imadjust增加圖片的對比度。

Code2:ch2_2.m

運行Code2後,結果如圖2-6所示。可以看到,處理後的灰度圖像(b)和對應的原圖(a)相比,對比度增加,圖像也更清晰了;處理後的RGB圖像(d)和對應的原圖(c)相比,顏色更加鮮亮。

圖2-6 Code2的運行結果

圖2-6 Code2的運行結果(續)

2.1.5 圖像的紋理

圖像的紋理特徵是描述一幅圖像的重要性質之一,圖像的紋理、顏色和形狀一起用來表述圖像的視覺特徵,也就是人的視覺能感受到的自然特徵。

紋理,通常意義上指的是物體表面凹凸不平的溝紋,或者光滑物體表面的彩色圖案,這些圖案會讓人有凹凸不平的視覺感受。圖2-7所示的三幅圖像就是有紋理的圖像。

圖2-7 有紋理的圖像

灰度分佈在空間位置上的反覆出現形成了紋理,所以圖像空間中一定距離的兩個像素是有關係的,灰度共生矩陣就是利用圖像灰度級之間的相關性來描述紋理的一種常用方法。灰度共生矩陣的特徵有:熵、ASM能量、對比度、均勻度和自相關,可以用這些特徵來分析圖像的紋理。

· 熵(Entropy):如果灰度共生矩陣元素值分佈均勻,則表示圖像近於隨機,熵值就越大。

· ASM能量:灰度共生矩陣中每個元素的平方和,表示圖像是否分佈均勻、紋理是否粗糙。圖像越有結構,ASM越大。

· 對比度(Contrast):表示圖像的清晰程度和紋理深淺程度。灰度共生矩陣中偏離對角線的元素值越大,對比度就越大,紋理也就越深。

· 均勻度:表示圖像紋理的粗細度。紋理越粗糙,則均勻度越大;紋理越細緻,則均勻度越小。

· 自相關(Correlation):描述灰度共生矩陣中水平或垂直方向上的相似度。如果矩陣中水平方向的元素值均勻相等,則水平方向的相關性大,對應的圖像在水平方向上越有紋理,則水平方向灰度共生矩陣的自相關值大於其他方向灰度共生矩陣的自相關值。

在MATLAB中,函數graycomatrix可以生成一幅圖像的灰度共生矩陣,格式如下。

glcm=graycomatrix(img,[param1,val1,param2,val2…])

img是輸入的原圖像,glcm是返回的灰度共生矩陣。函數graycomatrix可以設置一些參數,如表2-1所示。

表2-1 函數graycomatrix的參數

在MATLAB中,函數graycoprops可以獲取一個共生矩陣的熵、ASM能量、對比度和自相關的屬性值,格式如下。

下面我們通過Code3說明如何利用函數graycomatrix生成圖像對應的灰度共生矩陣,並利用函數graycoprops獲取共生矩陣的屬性值。

Code3:ch2_3.m

運行Code3後,結果如圖2-8所示。在MATLAB工作空間中查看glcm1和glcm2的值,如圖2-9所示。最後,統計兩幅紋理圖像的對比度、自相關、熵的屬性值,即工作空間中的stats1和stats2,結果如表2-2所示。

圖2-8 Code3的運行結果

圖2-9 兩幅紋理圖像對應的灰度共生矩陣

表2-2 兩幅紋理圖像對應的灰度共生矩陣的屬性值

空調風格柵圖的紋理比較深,所以它的對比度比較大。