數字圖像處理
- 緒論
- 1. 數字圖像處理基本概念
- 2. 數字圖像處理系統的組成
- 3. 數字圖像處理技術研究的內容
- 4. 數字圖像處理技術的應用領域
- 5. 圖像處理技術涉及的學科領域
- 圖像處理基礎
- 1. 電磁波譜與可見光譜
- 2. 人眼的亮度視覺特性
- 3. 圖像的表示
- 4. 空間分辨率和灰度級分辨率
- 5. 像素間的關系
- 6. 圖像的顯示
- 7. 圖像文件格式(以 BMP 為例)
- 數字圖像的基本運算
- 1. 灰度反轉
- 2. 對數變換
- 3. 灰度直方圖
- 4. 圖像的代數運算
- 5. 圖像的幾何運算
- 空間域圖像增強
- 1. 圖像增強概述
- 2. 基于點運算的圖像增強方法
- 3. 基于直方圖的圖像增強方法
- 4. 基于空間平滑濾波的圖像增強方法
- 5. 基于空間銳化濾波的圖像增強方法
- 頻率域圖像處理
- 1. 頻率域圖像處理基礎
- 2. 頻率域圖像處理實現
- 3. 頻率域低通濾波(去噪)
- 4. 頻率域高通濾波(增強邊緣)
- 5. 帶阻與帶通濾波
- 6. 關鍵公式與總結
- 圖像恢復
- 1. 圖像恢復的基本概念
- 2. 圖像的退化模型
- 3. 逆濾波圖像恢復
- 4. 維納濾波圖像恢復
- 5. 勻速直線運動模糊的恢復
- 6. 圖像噪聲與被噪聲污染圖像的恢復
- 7. 幾何失真的校正
- 圖像壓縮編碼
- 1. DCT 變換(離散余弦變換)
- 2. 數字圖像壓縮編碼基礎
- 3. 圖像編碼模型
- 4. 數字圖像的信息熵
- 5. 幾種基本的變長編碼方法
- 6. 位平面編碼
- 7. 游程編碼
- 8. 圖像質量評價 —— 保真度準則
- 彩色圖像處理
- 1. 彩色視覺基礎
- 2. 彩色模型
- 3. 彩色變換
- 4. 彩色圖像增強
- 5. 彩色圖像平滑
- 6. 彩色圖像銳化
- 7. 彩色圖像邊緣檢測
緒論
1. 數字圖像處理基本概念
- 圖像
- 定義:“圖” 是物體反射或透射電磁波的分布,“像” 是人的視覺系統對接收的圖信息在大腦中形成的印象或認識,圖像是 “圖” 和 “像” 的結合。圖像是用各種觀測系統以不同形式和手段觀測客觀世界而獲得的、可以直接或間接作用于人的視覺系統而產生視知覺的實體。
- 分類:
- 模擬圖像:二維空間和亮度值都是連續的圖像,如膠片定影后的影像膠卷沖洗后得到的照片。
- 數字圖像:二維空間和亮度值都是用有限數字數值表示的圖像,如數碼相繼拍攝的圖像。
- 數字圖像處理(Digital Image Processing)
- 定義:指對數字圖像信息進行加工,以改善圖像的視覺效果和提高圖像的實用性,或對數字圖像進行壓縮編碼以減少所需存儲空間的技術。也稱為計算機圖像處理,泛指利用計算機技術對數字圖像進行某些數學運算和各種加工處理。
- 基本特征:系統的輸入和輸出都是圖像,如加噪、圖像合成、求圖像最大 / 最小 / 平均灰度值等。
- 圖像分析
- 定義:通過對圖像中不同對象進行分割來對圖像中目標進行分類和識別的技術。
- 基本特征:輸入是圖像,輸出是對輸入圖像進行描述的信息,如圖像的直方圖、邊緣檢測結果等。
- 與圖像處理的關系:圖像處理是對圖像的低級處理階段,圖像分析是高一級的處理階段,兩者相互關聯、有重疊。低級處理是高級處理的基礎,高級處理是目的。本書中提到的圖像處理概念是廣義的,包括低級處理和高級處理(圖像處理與分析)。
- 圖像處理的目的
- 提高圖像的視感質量,達到賞心悅目的目的。
- 提取圖像中包含的某些特征或特殊信息,滿足目標識別和計算機視覺等應用需求。
- 對圖像數據進行變換、編碼和壓縮,便于圖像的高效存儲和傳輸。
2. 數字圖像處理系統的組成
- 架構:數字圖像的處理過程由計算機完成,包括圖像輸入、計算機處理、結果輸出。
- 組成部分
- 圖像的感知與獲取設備(輸入設備):將景物轉換成計算機可接受的數字圖像的采集設備,有的直接作為數字化圖像輸入設備,有的是間接的數字化圖像輸入設備,如電視攝像機、掃描儀、數碼照相機、遙感圖像獲取設備等。
- 圖像處理系統和軟件開發工具及平臺:專用或通用圖像處理系統;利用 MATLAB 圖像處理工具箱進行軟件開發;以 VC++ 或 BC++ 為編程工具在 Windows 上開發。
- 圖像輸出設備:彩色顯示設備、彩色印刷 / 打印設備,如噴墨打印機、激光打印機、數字印刷機等。
3. 數字圖像處理技術研究的內容
- 圖像獲取與表示:研究如何獲取數字圖像并對其進行表示。
- 圖像基本運算:包括圖像的(像素)點運算、圖像直方圖運算處理、圖像的代數運算、圖像的集合運算等,在課程第 3 章介紹。
- 圖像變換:是簡化圖像處理過程和提高圖像處理效果的基本技術,最典型的有傅里葉變換、離散余弦變換和小波變換等,課程把三種變換和其應用結合起來,分布到第 5、7、8 章介紹。
- 圖像增強:突出圖像中感興趣的特征或顯現模糊的細節,使圖像更清晰或更適合處理與分析,包括空間域圖像增強方法(第 4 章)和頻率域圖像處理(第 5 章)。
- 圖像恢復:從圖像退化的數學或概率模型出發,改進圖像外觀,使恢復后的圖像盡可能反映原始圖像的本來面目,在第 6 章介紹。
- 圖像壓縮編碼:在不損失或少量損失圖像質量的前提下,減少圖像的存儲量,滿足存儲和實時傳輸需求,在第 7 章介紹。
- 圖像特征提取:圖像特征是區分圖像內部特征的最基本屬性,是圖像目標檢測識別的基礎,在第 10 章介紹。
- 圖像分割:把圖像劃分成背景和目標,提取感興趣的目標或為區域提取目標奠定基礎,是圖像處理中較困難的任務之一,在第 9 章介紹。
- 彩色圖像處理技術:由于圖像技術的廣泛應用,彩色圖像處理成為重要研究內容和方向,在第 11 章介紹。
- 形態學圖像處理技術:是提取圖像元素的技術,在表現和描述物體形狀方面有很好的處理效果和應用價值,在第 12 章介紹。
- 圖像的表示和描述:通過對圖像中感興趣特征的定性和定量描述,賦予識別出的目標以符號標識和解釋,在第 13 章介紹。
- 視頻圖像處理:新增內容,在第 4 版中介紹運動目標檢測與識別及視頻壓縮編碼技術。
4. 數字圖像處理技術的應用領域
- 醫學應用:通過 CT、核磁共振、超聲波、X 射線成像的分析等提供醫學診斷依據,如肝臟和胃的橫斷平面 CT 圖像分析。
- 遙感與資源勘探:用于農、林等資源調查,農作物長勢監測,自然災害監測、預報,地勢、地貌測繪,地質構造解譯、找礦,環境污染檢測等,如 SPOT 圖像用于監測土地變化,衛星影象用于土地動態監測,1998 年長江洪澇災害監測。
- 工業生產:無損探傷,石油勘探,生產過程自動化(識別零件,裝配質量檢查),工業機器人研制等。
- 軍事應用:航空及衛星偵察照片的測繪、判讀,雷達、聲納圖像處理,導彈制導,軍事仿真等,如隱形飛機、定位轟炸,夜視偵查成像,軍事目標跟蹤,景象匹配精確制導。
- 通信技術:圖像傳真,數字電視、網絡可視聊天、可視電話網頁動畫等。
- 空間探索:獲取空間圖像進行分析,如土星衛星的相關研究。
- 公安與信息安全:指紋識別,印簽、偽鈔識別,安檢,手跡、印記鑒別分析等。
- 氣象預報:獲取氣象云圖進行測繪、判讀等,如風云 1 號、風云 2 號氣象衛星圖像應用。
- 廣告設計:用于廣告圖像的設計和制作。
- 藝術和影視應用:計算機繪畫、計算機合成圖像、動畫、娛樂等,如圖像配準示例,華南虎事件圖像合成,動畫制作。
5. 圖像處理技術涉及的學科領域
- 基礎技術領域:涉及數學、物理學、生理學、心理學、電子學、計算機科學等基礎學科,以及模式識別、計算機視覺、計算機圖形學等研究范圍,還有人工智能、神經網絡、遺傳算法、模糊邏輯等研究進展。
- 涉及的學科:典型的交叉學科技術,包括計算機科學與技術、信息與通信工程(信號與信息處理)、控制科學與工程(模式識別與智能系統)、測繪科學與技術(航空攝影測量)、光學工程(光學成像及處理技術)、醫學工程(二級學科)、醫學技術(二級學科)。
圖像處理基礎
1. 電磁波譜與可見光譜
- 電磁輻射波
- 組成與范圍:包括無線電波、微波、紅外線、可見光、紫外線、X 射線、γ 射線等。波長最長的無線電波為 3×102m,最短的 γ 射線為 3×10?1?m。
- 成像應用:不同波段有不同成像方式和應用領域。如 γ 射線用于骨骼掃描、PET 圖像;X 射線用于醫學成像(胸部 X 射線、CT)、電路板檢測;紫外線成像可識別真菌感染的谷物;可見光與紅外波段用于衛星圖像(如 LANDSAT);微波段(雷達)不受氣候光照影響,可穿透云層等,用于西藏山區雷達圖像;無線電波用于磁共振成像(MRI);此外還有聲波成像(地震模型)、電子顯微鏡成像(鎢絲、集成電路)等。
- 可見光譜
- 顏色與波長:太陽輻射主要占據可見光譜,可見光按波長不同依次為紫、藍、青、綠、黃、橙、紅,白光由多種顏色混合而成。可見光譜波長范圍約 380nm(紫)到 780nm(紅),近紅外、短波紅外等延伸波段也有明確波長劃分。
- 顏色決定因素:物體顏色由反射光特性決定,反射所有可見光平衡時為白色,只反射有限范圍光則呈現對應顏色。
- 光的分類:僅有單一波長的光為單色光,含兩種以上波長的為復合光,二者均為有色彩光;消色光無色彩(如黑白電視的光),僅有亮度或強度,用灰度級描述。
2. 人眼的亮度視覺特性
- 視覺適應性
- 主觀亮度與光強度成對數關系,圖像對數運算符合視覺特性。
- 暗適應性:人眼從亮到暗環境的適應能力。
- 視覺惰性:對亮度變化跟蹤滯后,有短暫記憶特性。
- 同時對比效應
- 人眼對區域亮度的感覺不僅取決于該區域強度,還與背景或周圍亮度有關。
- 實例與程序:通過 MATLAB 程序生成 4 幅不同背景亮度中間方塊亮度相同的圖像,展示對比效應。程序使用 zeros 創建矩陣,通過循環給圖像賦值和設置中間方塊亮度,用 imshow 顯示,title 加標題。
- 馬赫帶效應
- 人類視覺在亮度變化處會出現虛幻亮或暗條紋,在不同亮度區域邊界有 “欠調” 和 “過調” 現象。
- 視覺錯覺
- 人眼填充不存在信息或錯誤感知物體幾何特點,如柵格火花錯覺、長度與透視錯覺、曲線正方形錯覺等實例。
3. 圖像的表示
-
簡單成像模型
- 圖像定義為二維函數 f (x,y),(x,y) 為像素坐標,f 為亮度幅值。
- f (x,y) 由照射光強度 i (x,y) 和反射 / 透射系數 r (x,y) 決定,即 f (x,y)=i (x,y) r (x,y),其中 0 < i (x,y) < A?,0 ≤ r (x,y) ≤ 1。
- 消色光圖像(灰度圖像)中,f (x,y) 表示灰度值 l,范圍 [Lmin, Lmax],實際常取 [0, L-1],L=2?(k 為正整數)。
-
數字圖像的表示
-
采樣與量化:連續圖像需進行空間(采樣)和幅值(量化)的離散化。均勻采樣是對 x、y 方向等間距劃分成 M×N 網格;均勻量化是將灰度范圍 [0, Lmax] 劃分為 L=2? 個等級。
-
表示方法:數字圖像可表示為 M×N 的二維數字陣列,每個元素為像素。黑白圖像(k=1,L=2)、256 灰度級圖像(k=8,L=256)等。彩色圖像由 R、G、B 三原色構成,各用 8 位表示。
-
存儲計算:存儲一幅 M×N 圖像的位數 b = M×N×k,如黑白圖像每個像素 1bit,16 灰度級 4bit,256 灰度級 8bit。
舉例:求一幅600×800的黑白圖像、 16灰度級圖像、256灰度級圖像,分別需要多少字節的存儲空間?
-
坐標系統:數字圖像運算和顯示使用不同坐標系統,運算坐標與數學公式對應,顯示坐標與屏幕像素位置對應。
-
4. 空間分辨率和灰度級分辨率
- 空間分辨率
- 定義為圖像中可分辨的最小細節,由采樣間隔決定,常用單位距離內的黑白線對數目表示(如每毫米線對數)。
- 對同樣大小景物,采樣線對數越多(分辨率越高),采樣間隔越小,圖像細節越清晰,圖像陣列 M×N 越大;空間分辨率不變時,M×N 越大圖像尺寸越大。
- 灰度分辨率
- 指灰度級別中可分辨的最小變化,即像素點的灰度級數,通常用灰度級級數 L 表示。
- 對圖像效果的影響
- 采樣數變化:在空間分辨率不變時,采樣數越少圖像越小;景物大小不變時,圖像陣列越小尺寸越小。
- 空間分辨率變化:分辨率降低,圖像細節損失,粗顆粒像素點變明顯,視覺效果變差。
- 灰度分辨率變化:分辨率降低,圖像細節損失,偽輪廓增加,視覺效果變差。
5. 像素間的關系
-
相鄰像素與鄰域
-
4 - 鄰域:像素 p (x,y) 的水平和垂直相鄰像素,坐標為 (x-1,y)、(x,y-1)、(x,y+1)、(x+1,y),記為 N?§。
-
4 - 對角鄰域:像素 p 的對角相鄰像素,坐標為 (x-1,y-1)、(x-1,y+1)、(x+1,y-1)、(x+1,y+1),記為 ND§。
-
8 - 鄰域:4 - 鄰域和 4 - 對角鄰域像素的集合,記為 N8§。
-
-
距離度量
-
距離度量函數:對于在圖像顯示坐標系中坐標分別位于 (x,y),(u,v) 和 (w,z) 處的像素 p、q 和 r,如果:
- D(p,q)≥0(D(p,q)=0,當且僅當 p=q,即 p 和 q 是指同一像素)
- D(p,q)=D(q, p)
- D(p,r) ≤D(p,q)+D(q,r)
則D是距離度量函數
-
歐氏距離:De (p,q)=[(x-u)2+(y-v)2]1/2,像素在以 (x,y) 為中心的圓內。
-
街區距離(D?):D?(p,q)=|x-u| + |y-v|,像素在以 (x,y) 為中心的菱形內。
-
棋盤距離(D?):D?(p,q)=max (|x-u|, |y-v|),像素在以 (x,y) 為中心的方形內。
-
6. 圖像的顯示
-
顯示分辨率與圖像分辨率
- 顯示分辨率是顯示屏能顯示的最大像素行列數,取決于像素點距離;圖像分辨率是圖像中可分辨的最小細節,即空間分辨率(圖像陣列大小)。
- 同一顯示器顯示圖像大小只與圖像空間分辨率有關;同一圖像在不同顯示分辨率顯示器上,顯示分辨率越高圖像外觀尺寸越小,反之越大。
-
光度分辨率與灰度分辨率
- 光度分辨率是顯示系統產生正確亮度的精度,依賴于控制像素亮度的比特數;灰度分辨率是灰度級中的最小變化,用灰度級數 L 表示。
-
彩色模型
- 人眼視覺用亮度、色調、飽和度區分顏色,亮度與反射率成正比,色調與光譜主波長聯系,飽和度與色調純度有關,詳細內容在彩色圖像處理章節介紹。
-
位圖與調色板
-
位映像是二維像素陣列,位圖是采用位映像存儲和顯示的圖像,位映像設備逐像素掃描顯示位圖。
-
調色板是 16 色或 256 色顯示系統中,將頻繁出現的顏色組成顏色表,每個顏色有索引號,對應 24 位 RGB 值,稱為顏色查找表(LUT)。
-
常用顏色的 RGB 值組合:
顏色 紅色分量(R) 綠色分量(G) 藍色分量(B) 黑色 0 0 0 白色 255 255 255 紅色 255 0 0 綠色 0 255 0 藍色 0 0 255 青色 0 255 255 品紅(紫色) 255 0 255 黃色 255 255 0 灰色 128 128 128 橄欖色 128 128 0 深青色 0 128 128 銀色 192 192 192
-
7. 圖像文件格式(以 BMP 為例)
- 常用的文件格式有:BMP 、JPEG 、GIF、TIFF、PCX 等。
- BMP 文件組成
- 位圖文件頭(BITMAPFILEHEADER):14 字節,包括文件類型(“BM”)、大小、保留字、位圖數據偏移量。
- 位圖信息頭(BITMAPINFOHEADER):40 字節,包含信息頭大小、圖像寬高、平面數(1)、每個像素位數(1、4、8、24)、壓縮格式、位圖數據字節數、分辨率、實際使用顏色數等。
- 位圖調色板:由顏色格式確定的調色板數組,每個元素是 4 字節的 RGBQUAD 結構,包含藍、綠、紅分量和保留字。
- 位圖數據:對于有調色板的位圖,數據是像素在調色板中的索引值;2 色圖像每個字節 8 像素,16 色 2 像素,256 色 1 像素;真彩色圖像數據是 B、G、R 值,3 字節 / 像素。數據按行從下到上、從左到右存儲,每行字節數為 4 的倍數,不足補 0。
數字圖像的基本運算
從嚴格的意義上來說,各種圖像處理方法都是一種圖像運算方法。
從一般意義上來說,圖像運算僅指對圖像中的所有像素實施了相同處理的那些運算,比如對圖像的點運算、直方圖運算、代數運算、幾何運算、灰度插值運算等。
1. 灰度反轉
-
定義
- 黑白圖像:灰度值為 1 的像素變為 0,0 變為 1。
- 256 灰度級圖像:用 255 減去原圖像各像素灰度值。
-
數學表達式:設圖像灰度級為 L,灰度反轉可表示為g(x,y)=L?1?f(x,y)。
-
示例:256 灰度級圖像反轉后,正片變為負片(如原灰度 0→255,255→0)。
-
MATLAB 程序
clc; clear all; close all; img0 = imread('d:\0_matlab圖像課編程\lena.jpg'); result_img = 256 - 1 - img0; % 灰度反轉 subplot(1,2,1); imshow(img0); title('原圖像'); subplot(1,2,2); imshow(result_img); title('灰度反轉圖像(負片)');
2. 對數變換
-
數學表達式:g(x,y)=c·log(1+f(x,y))
-
作用
- 壓縮圖像灰度值動態范圍,提升低灰度值。
- 符合人眼視覺特性(視覺感受與光強度成對數關系)。
-
應用場景:傅里葉頻譜顯示中,調高低灰度值(高頻成分),避免 8 比特顯示系統中低灰度值丟失。
-
示例:對傅里葉頻譜圖進行 c=1 的對數變換,突出低頻成分的同時保留高頻細節。
3. 灰度直方圖
-
概念
-
定義:表示數字圖像中灰度級分布的函數,橫坐標為灰度級(0~255),縱坐標為各灰度級像素數量或頻率。
-
數學定義
- 非歸一化:h(rk)=nk,其中 nk 為灰度值為 rk 的像素個數。
- 歸一化:h(rk)= n k N \frac{n?}{N} Nnk??,N 為圖像總像素數。
-
-
灰度圖像的對比度
-
定義:圖像中最亮白與最暗黑之間亮度層級的測量,用最大灰度值與最小灰度值的比值表示。
-
特征:對比度越大,圖像越清晰醒目;越小則畫面灰蒙蒙。
-
-
直方圖分布特征與圖像對比度的關系
-
直方圖偏左:圖像灰度值普遍偏小,偏暗。
-
直方圖偏右:圖像灰度值普遍偏大,偏亮。
-
直方圖分布在局部區域:圖像對比度低。
-
直方圖均勻分布且有峰值:圖像亮度黑白分明,對比度高。
-
-
直方圖的特征
-
僅描述灰度值像素個數,無空間信息。
-
特定圖像有唯一直方圖,不同圖像可具有相同直方圖。
-
像素總數關系: ∑ j = 0 L ? 1 h ( j ) = M × N \sum_{j=0}^{L-1} h(j) = M \times N ∑j=0L?1?h(j)=M×N(M×N 為圖像分辨率)。
-
由不連接區域組成的圖像,其直方圖為各區域直方圖之和。
-
4. 圖像的代數運算
-
相加運算
-
定義:對兩幅大小相同的圖像對應位置像素相加,生成新圖像(圖像合成)。
-
數學表達式:g(x,y)=f1(x,y)+f2(x,y)
-
實現方式
- 灰度值折半相加:g(x,y)=integerRound(f1(x,y)+f2(x,y))
- 按比例相加:g(x,y)=αf1(x,y)+βf2(x,y)(α+β=1)
-
應用:多幅圖像疊加去加性噪聲,公式為 g ( x , y ) = 1 n ∑ i = 1 n f i ( x , y ) g(x,y)= \frac{1}{n} \sum_{i=1}^{n} f_i(x,y) g(x,y)=n1?∑i=1n?fi?(x,y),n 為圖像數量,噪聲隨 n 增加而降低。
-
-
相減運算
-
定義:從一幅圖像各像素中減去另一幅圖像對應位置像素值。
-
數學表達式:g(x,y)=f1(x,y)?f2(x,y)
-
結果處理:相減結果 ≥0 時取原值;<0 時取 0 或絕對值。
-
應用:圖像變化檢測。
-
5. 圖像的幾何運算
-
平移變換
-
定義:將圖像或子圖像塊所有像素按指定 X、Y 方向偏移量移動。
-
數學表達式:設初始坐標(x0,y0),偏移量(Δx,Δy),平移后坐標(x1,y1),則x1=x0+Δx,y1=y0+Δy
-
矩陣形式:
[ x 1 y 1 1 ] = [ 1 0 Δ x 0 1 Δ y 0 0 1 ] [ x 0 y 0 1 ] \begin{bmatrix} x_1 \\ y_1 \\ 1 \end{bmatrix} = \begin{bmatrix} 1 & 0 & \Delta x \\ 0 & 1 & \Delta y \\ 0 & 0 & 1 \end{bmatrix} \begin{bmatrix} x_0 \\ y_0 \\ 1 \end{bmatrix} ?x1?y1?1? ?= ?100?010?ΔxΔy1? ? ?x0?y0?1? ?
-
實現方式
-
圖像塊平移:移動子塊,其余部分不變。
-
整幅圖像平移:保持原幅面,移出部分截掉。
-
-
-
旋轉變換
-
定義:以圖像中心為原點,將所有像素旋轉相同角度。
-
實現方式
- 幅面放大:按外接矩形尺寸放大。
- 幅面不變:截斷旋轉后超出原幅面的部分。
-
基于 xoy 平面坐標系的點旋轉變換
-
設點(x0,y0)旋轉 β 角度后到(x1,y1),則: x 1 = x 0 c o s β + y 0 s i n β , y 1 = ? x 0 s i n β + y 0 c o s β x? = x? cosβ + y? sinβ,y? = -x? sinβ + y? cosβ x1?=x0?cosβ+y0?sinβ,y1?=?x0?sinβ+y0?cosβ
-
矩陣形式:
[ x 1 y 1 1 ] = [ cos ? β sin ? β 0 ? sin ? β cos ? β 0 0 0 1 ] [ x 0 y 0 1 ] \begin{bmatrix} x_1 \\ y_1 \\ 1 \end{bmatrix} = \begin{bmatrix} \cos\beta & \sin\beta & 0 \\ -\sin\beta & \cos\beta & 0 \\ 0 & 0 & 1 \end{bmatrix} \begin{bmatrix} x_0 \\ y_0 \\ 1 \end{bmatrix} ?x1?y1?1? ?= ?cosβ?sinβ0?sinβcosβ0?001? ? ?x0?y0?1? ?
-
-
映射到圖像顯示坐標的變換:考慮圖像顯示坐標原點在左上角,x 軸朝右、y 軸朝下,需通過坐標轉換推導最終變換公式。
-
-
鏡像變換
-
水平鏡像
-
定義:原圖像與鏡像圖像關于虛擬垂直軸對稱。
-
數學表達式:設圖像高度 h、寬度 w,原坐標(x0,y0),鏡像后(x1,y1),則x1=x0,y1=w?y0+1。
-
MATLAB 程序
clc; clear; close all; img0 = imread('d:\0_matlab圖像課編程\lena.jpg'); [h, w] = size(img0); for x0 = 1:hfor y0 = 1:wresult_img(x0, w - y0 + 1) = img0(x0, y0);end end subplot(1,2,1); imshow(img0); title('原圖像'); subplot(1,2,2); imshow(result_img); title('水平鏡像結果圖像');
-
-
垂直鏡像
-
定義:原圖像與鏡像圖像關于虛擬水平軸對稱。
-
數學表達式:x1=h?x0+1,y1=y0
-
-
-
轉置變換
-
定義:圖像行坐標與列坐標互換。
-
數學表達式:原坐標(x0,y0),轉置后(x1,y1),則x1=y0,y1=x0。
-
注意:與圖像旋轉不同,旋轉 90° 無法得到轉置結果。
-
-
縮放變換
-
定義:對圖像進行縮小或放大。
-
數學表達式:原坐標(x0,y0),按比例 r 縮放后(x1,y1),則x1=rx0,y1=ry0。
-
圖像縮小
-
目的:使圖像符合顯示區域大小、生成縮略圖。
-
簡單方法:保留奇數行/列和偶數行/列,將圖像縮小到原大小的 1/4。
-
-
圖像放大
-
目的:使圖像在高分辨率設備上更好顯示。
-
最近鄰域插值法
- 整數倍放大:將原像素復制到放大后圖像的多個像素。
- 非整數倍放大:通過坐標映射找到原圖像對應像素,取最近鄰像素值作為插值結果。公式為 x old = x new × ( h old / h new ) , y old = y new × ( w old / w new ) x_{\text{old}} = x_{\text{new}} \times (h_{\text{old}}/h_{\text{new}}),y_{\text{old}} = y_{\text{new}} \times (w_{\text{old}}/w_{\text{new}}) xold?=xnew?×(hold?/hnew?),yold?=ynew?×(wold?/wnew?),取整后獲取原像素值。
-
雙線性插值法
-
原理:通過計算輸出像素在輸入圖像中 4 個像素之間的非整數位置的灰度值進行插值。
-
步驟:先在 x 方向對上端和下端像素線性插值,得到 (x,0) 和 (x,1) 處的灰度值;再在 y 方向對這兩個點線性插值,得到 (x,y) 處的灰度值。
-
數學推導
- x 方向插值: f ( x , 0 ) = f ( 0 , 0 ) + x [ f ( 1 , 0 ) ? f ( 0 , 0 ) ] , f ( x , 1 ) = f ( 0 , 1 ) + x [ f ( 1 , 1 ) ? f ( 0 , 1 ) ] f(x,0)=f(0,0)+x[f(1,0)?f(0,0)],f(x,1)=f(0,1)+x[f(1,1)?f(0,1)] f(x,0)=f(0,0)+x[f(1,0)?f(0,0)],f(x,1)=f(0,1)+x[f(1,1)?f(0,1)]
- y 方向插值: f ( x , y ) = f ( x , 0 ) + y [ f ( x , 1 ) ? f ( x , 0 ) ] f(x,y)=f(x,0)+y[f(x,1)?f(x,0)] f(x,y)=f(x,0)+y[f(x,1)?f(x,0)]
- 最終公式: f ( x , y ) = [ f ( 1 , 0 ) ? f ( 0 , 0 ) ] x + [ f ( 0 , 1 ) ? f ( 0 , 0 ) ] y + [ f ( 1 , 1 ) + f ( 0 , 0 ) ? f ( 0 , 1 ) ? f ( 1 , 0 ) ] x y + f ( 0 , 0 ) f(x,y) = [f(1,0) - f(0,0)]x + [f(0,1) - f(0,0)]y + [f(1,1) + f(0,0) - f(0,1) - f(1,0)]xy + f(0,0) f(x,y)=[f(1,0)?f(0,0)]x+[f(0,1)?f(0,0)]y+[f(1,1)+f(0,0)?f(0,1)?f(1,0)]xy+f(0,0)
-
-
-
空間域圖像增強
1. 圖像增強概述
- 定義:通過對圖像的邊緣、輪廓、對比度等特征進行強調或尖銳化,使其更適合人眼觀察或機器處理的技術。
-
分類
- 空間域增強:在圖像平面直接對像素灰度值進行運算處理。
- 頻率域增強:在圖像頻率域進行增強處理(見第 5 章)。
-
空間域增強方法:包括灰度變換、直方圖增強、空間運算等方法。
2. 基于點運算的圖像增強方法
-
對比度拉伸
-
目的:通過增強圖像各部分反差,增加灰度值間動態范圍來實現圖像增強。
-
典型線性變換函數:
g = { a ? f 0 ≤ f < a β ? ( f ? a ) + g a a ≤ f < b γ ? ( f ? b ) + g b b ≤ f < L g = \begin{cases} a \cdot f & 0 \leq f < a \\ \beta \cdot (f - a) + g_a & a \leq f < b \\ \gamma \cdot (f - b) + g_b & b \leq f < L \end{cases} g=? ? ??a?fβ?(f?a)+ga?γ?(f?b)+gb??0≤f<aa≤f<bb≤f<L?
可實現均勻變亮、變暗、特定區間線性變化等效果。
-
示例:
-
原圖像經不同對比度拉伸后的效果,包括均勻變亮、變暗、[a,b] 區間線性變化等。
-
窗切片(灰度切片)
-
目的:提高圖像中某個灰度級范圍的亮度,突出該部分。
-
基本方法
- 給關心的灰度范圍指定較高灰度值,其他部分指定較低值或 0 值。
- 給關心的灰度范圍指定較高灰度值,其他部分灰度值保持不變。
-
示例:
-
展示了兩種窗切片方法的圖示
展示了對比度拉伸與窗切片的灰度變換結果。
3. 基于直方圖的圖像增強方法
-
直方圖增強的基本思想:當圖像像素占據所有灰度級且均勻分布時,圖像對比度高、灰度色調多變。直方圖增強通過將原始圖像直方圖變換為均勻分布或指定形狀,實現圖像增強。
-
直方圖均衡
-
基本思想:將已知灰度概率分布的圖像變換為均勻灰度概率分布的新圖像,擴大灰度分布范圍、增加對比度。
-
變換函數條件:單值單調增加,且將 [0,1] 區間的灰度值映射到 [0,1] 區間。
-
離散變換函數:通過統計像素頻數計算歸一化概率,利用直方圖均衡化公式 s k = ∑ j = 0 k n j n , 0 ≤ r j , s k ≤ 1 ; k = 0 , 1 , … , L ? 1 s_k = \sum_{j=0}^{k} \frac{n_j}{n}, \quad 0 \leq r_j, s_k \leq 1; \quad k = 0, 1, \dots, L - 1 \ sk?=j=0∑k?nnj??,0≤rj?,sk?≤1;k=0,1,…,L?1?計算變換函數值。
-
實現步驟:統計原圖像灰度分布、計算歸一化概率、求變換函數值、映射灰度級、計算新圖像像素值、統計新圖像灰度分布。
-
示例:已知有一幅如圖4.7 的圖像 ,灰度級為8 。利用直方圖均衡化方法增強該圖像。
-
統計原灰度圖像中不同灰度級像素的個數(原圖像的灰度級分布)。
-
根據公式p(rk)= n k N \frac{n?}{N} Nnk??(N 為圖像總像素數)計算原圖像的歸一化灰度級分布概率,并畫出原圖像的灰度直方圖。
-
依據式 s k = ∑ j = 0 k n j n , 0 ≤ r j , s k ≤ 1 ; k = 0 , 1 , … , L ? 1 s_k = \sum_{j=0}^{k} \frac{n_j}{n}, \quad 0 \leq r_j, s_k \leq 1; \quad k = 0, 1, \dots, L - 1 \ sk?=j=0∑k?nnj??,0≤rj?,sk?≤1;k=0,1,…,L?1?,求各灰度級對應的變換函數值。
-
根據式 t k = IntergerRound ( ( L ? 1 ) × s k ) t_k = \text{IntergerRound}\left((L - 1) \times s_k\right) tk?=IntergerRound((L?1)×sk?),將原圖像的灰度級,映射到新圖像的灰度級。
-
根據式 g ( i , j ) = t ( f ( i , j ) ) , t k = 0 , 1 , … , L ? 1 (4.11) g(i, j) = t_{(f(i, j))}, \quad t_k = 0, 1, \dots, L-1 \tag{4.11} g(i,j)=t(f(i,j))?,tk?=0,1,…,L?1(4.11),求原圖像 f 被均衡化后得到的新圖像 g 中各個像素的灰度值,得到的均衡化后的新圖像如圖 4.10 所示。
-
-
6. 統計新灰度圖像中不同灰度級像素的個數(新圖像的灰度級分布),結果如表4.3所示。
7. 求新圖像的歸一化灰度級分布概率,并畫出新圖像的灰度直方圖。
-
直方圖規定化
- 基本思想:將已知直方圖的圖像變換為具有期望直方圖的圖像,有選擇地增強特定灰度范圍。
- 實現步驟:先對原圖像進行直方圖均衡化,再根據指定期望直方圖求變換函數值,映射灰度級,計算結果圖像像素值。
- 總結:直方圖規定化 = “原始直方圖均衡化” + “規定直方圖均衡化” + “雙向映射匹配”,通過讓兩者的累計分布函數(CDF)盡可能接近,實現灰度替換。
4. 基于空間平滑濾波的圖像增強方法
-
相關概念
- 圖像噪聲:如椒鹽噪聲、脈沖噪聲等,是空間上不相聯系的離散像素變化。
- 高頻與低頻信號:高頻信號指圖像中變化劇烈的部分(如邊緣、噪聲),低頻信號指像素值變化平緩的部分。
- 低通與高通濾波:低通濾波保留低頻、濾除高頻,用于去噪;高通濾波保留高頻、濾除低頻,用于增強邊緣。
-
線性平滑濾波(鄰域平均法)
- 鄰域平均法:通過計算像素鄰域灰度平均值來平滑噪聲,公式 g ( x , y ) = { 1 8 ∑ i = 1 8 O i 當? ∣ f ( x , y ) ? 1 8 ∑ i = 1 8 O i ∣ > ε f ( x , y ) 其它 g(x,y) = \begin{cases} \dfrac{1}{8} \sum_{i=1}^{8} O_i & \text{當 } \left| f(x,y) - \dfrac{1}{8} \sum_{i=1}^{8} O_i \right| > \varepsilon \\ f(x,y) & \text{其它} \end{cases} g(x,y)=? ? ??81?∑i=18?Oi?f(x,y)?當? ?f(x,y)?81?∑i=18?Oi? ?>ε其它?中通過誤差門限 ε 判斷是否為噪聲。
- 均值濾波法:簡化鄰域平均法,直接用 3×3 窗口內像素灰度平均值替代原像素值,公式 g ( i , j ) = 1 9 ∑ s = ? 1 1 ∑ t = ? 1 1 f ( i + s , j + t ) (4.17) g(i,j) = \frac{1}{9} \sum_{s=-1}^{1} \sum_{t=-1}^{1} f(i+s, j+t) \tag{4.17} g(i,j)=91?s=?1∑1?t=?1∑1?f(i+s,j+t)(4.17) 其中: i , j ∈ [ 0 , N ? 2 ] i,j \in [0, N-2] i,j∈[0,N?2]。,低通濾波器脈沖響應如式 H ( s , t ) = 1 9 [ 1 1 1 1 1 1 1 1 1 ] H(s,t) = \frac{1}{9} \begin{bmatrix} 1 & 1 & 1 \\ 1 & 1 & 1 \\ 1 & 1 & 1 \end{bmatrix} H(s,t)=91? ?111?111?111? ?、 g ( i , j ) = ∑ s = ? k k ∑ t = ? l l f ( i + s , j + t ) H ( s , t ) i , j = 0 , 1 , 2 , ? , N ? M ; k , l = ? M 2 ? \begin{align*} g(i, j) &= \sum_{s=-k}^{k} \sum_{t=-l}^{l} f(i + s, j + t) H(s, t) \\ &\quad i, j = 0, 1, 2, \cdots, N - M; \ k, l = \left\lfloor \frac{M}{2} \right\rfloor \end{align*} g(i,j)?=s=?k∑k?t=?l∑l?f(i+s,j+t)H(s,t)i,j=0,1,2,?,N?M;?k,l=?2M???。
- 模板:典型低通濾波模板如 3×3 全 1 模板,模板尺寸越大,平滑效果越明顯但圖像越模糊。
- 示例:
展示了均值濾波去噪效果。 - 多幅圖像平均:通過對多幅同一場景圖像求平均來平滑噪聲,公式 g ( i , j ) = 1 n ∑ k = 1 n f k ( i , j ) g(i, j) = \frac{1}{n} \sum_{k=1}^{n} f_k(i, j) g(i,j)=n1?k=1∑n?fk?(i,j)。
-
非線性平滑濾波(中值濾波)
-
基本原理:用鄰域像素灰度中值代替當前像素值,消除孤立噪聲點。
-
窗口形狀:有線形、十字形、方形、菱形、圓形等。
-
算法描述:選定窗口,移動掃描,排序鄰域像素,取中值賦給窗口中心像素。
-
示例:
展示了中值濾波去噪效果,并與鄰域平均法比較,中值濾波在保留邊緣的同時去噪效果更好。
-
5. 基于空間銳化濾波的圖像增強方法
-
目的:增強和突出圖像中被模糊的邊緣和輪廓,提升對比度和視覺效果。
-
基于一階微分的方法
-
梯度與一階導數:梯度是函數變化的度量,一階導數算子即梯度算子。
-
離散梯度計算:
- 水平和垂直方向的一階差分如式 ? x f ( i , j ) = f ( i + 1 , j ) ? f ( i , j ) \nabla_x f(i, j) = f(i+1, j) - f(i, j) ?x?f(i,j)=f(i+1,j)?f(i,j)、 ? y f ( i , j ) = f ( i , j + 1 ) ? f ( i , j ) \nabla_y f(i, j) = f(i, j+1) - f(i, j) ?y?f(i,j)=f(i,j+1)?f(i,j),
- 梯度模值如式 G ( i , j ) = [ f ( i + 1 , j ) ? f ( i , j ) ] 2 + [ f ( i , j + 1 ) ? f ( i , j ) ] 2 G(i, j) = \sqrt{\left[ f(i+1, j) - f(i, j) \right]^2 + \left[ f(i, j+1) - f(i, j) \right]^2} G(i,j)=[f(i+1,j)?f(i,j)]2+[f(i,j+1)?f(i,j)]2?,
- 簡化為絕對值和 G ( i , j ) = ∣ f ( i + 1 , j ) ? f ( i , j ) ∣ + ∣ f ( i , j + 1 ) ? f ( i , j ) ∣ G(i, j) = \left| f(i+1, j) - f(i, j) \right| + \left| f(i, j+1) - f(i, j) \right| G(i,j)=∣f(i+1,j)?f(i,j)∣+∣f(i,j+1)?f(i,j)∣。
-
羅伯特差分法:交叉差分法,定義式 G ( i , j ) = ∣ f ( i + 1 , j + 1 ) ? f ( i , j ) ∣ + ∣ f ( i + 1 , j ) ? f ( i , j + 1 ) ∣ (4.37) G(i, j) = \left| f(i+1, j+1) - f(i, j) \right| + \left| f(i+1, j) - f(i, j+1) \right| \tag{4.37} G(i,j)=∣f(i+1,j+1)?f(i,j)∣+∣f(i+1,j)?f(i,j+1)∣(4.37),用于檢測邊緣。
-
增強結果圖像形成:直接取梯度圖像、設置門限突出邊緣、指定邊緣灰度級、將梯度邊緣疊加到原圖像。
-
示例:
展示了水平垂直差分法和羅伯特差分法的梯度圖像和增強結果。
-
-
基于二階微分的方法(拉普拉斯算子銳化法)
-
拉普拉斯算子:二階微分算子,
- 連續形式如式 ? 2 f = ? 2 f ? x 2 + ? 2 f ? y 2 \nabla^2 f = \frac{\partial^2 f}{\partial x^2} + \frac{\partial^2 f}{\partial y^2} ?2f=?x2?2f?+?y2?2f?,
- 離散形式如式 ? 2 f ( i , j ) = f ( i + 1 , j ) + f ( i ? 1 , j ) + f ( i , j + 1 ) + f ( i , j ? 1 ) ? 4 f ( i , j ) \nabla^2 f(i,j) = f(i + 1, j) + f(i - 1, j) + f(i, j + 1) + f(i, j - 1) - 4f(i, j) ?2f(i,j)=f(i+1,j)+f(i?1,j)+f(i,j+1)+f(i,j?1)?4f(i,j) ,
用于檢測邊緣交點,邊緣檢測精度更高。
-
常用模板:如 H1、H2 等模板,
-
展示了不同模板的檢測結果。
-
增強結果圖像形成:將原始圖像和二階微分圖像疊加,使用如 H6、H9 等模板,
展示了銳化結果。
頻率域圖像處理
1. 頻率域圖像處理基礎
- 頻率域圖像定義
- 用空間頻率表示圖像像素灰度值的分布特征,以頻譜圖形式呈現信息分布。
- 基于傅里葉變換,將圖像從空間域轉換到頻率域處理,再反變換回空間域。
- 二維離散傅里葉變換(2D-DFT)
- 定義
- 一般定義(M×N 圖像):
- 正變換: F ( u , v ) = 1 M N ∑ x = 0 M ? 1 ∑ y = 0 N ? 1 f ( x , y ) exp ? [ ? j 2 π ( x u M + y v N ) ] F(u,v) = \frac{1}{MN} \sum_{x=0}^{M-1} \sum_{y=0}^{N-1} f(x,y) \exp\left[-j2\pi\left(\frac{xu}{M} + \frac{yv}{N}\right)\right] F(u,v)=MN1?x=0∑M?1?y=0∑N?1?f(x,y)exp[?j2π(Mxu?+Nyv?)]
- 反變換: f ( x , y ) = 1 M N ∑ u = 0 M ? 1 ∑ v = 0 N ? 1 F ( u , v ) exp ? [ j 2 π ( x u M + y v N ) ] f(x,y) = \frac{1}{MN} \sum_{u=0}^{M-1} \sum_{v=0}^{N-1} F(u,v) \exp\left[j2\pi\left(\frac{xu}{M} + \frac{yv}{N}\right)\right] f(x,y)=MN1?u=0∑M?1?v=0∑N?1?F(u,v)exp[j2π(Mxu?+Nyv?)]
- 當 M=N 時簡化定義:
- 正變換: F ( u , v ) = 1 N ∑ x = 0 N ? 1 ∑ y = 0 N ? 1 f ( x , y ) exp ? [ ? j 2 π ( x u + y v N ) ] F(u,v) = \frac{1}{N} \sum_{x=0}^{N-1} \sum_{y=0}^{N-1} f(x,y) \exp\left[-j2\pi\left(\frac{xu + yv}{N}\right)\right] F(u,v)=N1?x=0∑N?1?y=0∑N?1?f(x,y)exp[?j2π(Nxu+yv?)]
- 反變換: f ( x , y ) = ∑ u = 0 N ? 1 ∑ v = 0 N ? 1 F ( u , v ) exp ? [ j 2 π ( u x + v y N ) ] f(x,y) = \sum_{u=0}^{N-1} \sum_{v=0}^{N-1} F(u,v) \exp\left[j2\pi\left(\frac{ux + vy}{N}\right)\right] f(x,y)=u=0∑N?1?v=0∑N?1?F(u,v)exp[j2π(Nux+vy?)]
- 一般定義(M×N 圖像):
- 頻譜與相位角
- 頻譜(幅度譜): ∣ F ( u , v ) ∣ = R 2 ( u , v ) + I 2 ( u , v ) |F(u,v)| = \sqrt{R^2(u,v) + I^2(u,v)} ∣F(u,v)∣=R2(u,v)+I2(u,v)?,其中 R 和 I 分別為實部和虛部。
- 相位角: ? ( u , v ) = arctan ? ( I ( u , v ) R ( u , v ) ) \phi(u,v) = \arctan\left(\frac{I(u,v)}{R(u,v)}\right) ?(u,v)=arctan(R(u,v)I(u,v)?)
- 定義
- 傅里葉頻譜特性
- 物理意義:將灰度分布轉換為頻率分布,低頻對應平滑區域,高頻對應邊緣、噪聲等。
- 重要性質
- 線性性: F [ a f ( x , y ) + b g ( x , y ) ] = a F ( u , v ) + b G ( u , v ) \mathcal{F}[af(x,y) + bg(x,y)] = a\mathcal{F}(u,v) + b\mathcal{G}(u,v) F[af(x,y)+bg(x,y)]=aF(u,v)+bG(u,v)。
- 可分離性:二維 DFT 可分解為兩次一維 DFT,先對行再對列變換。
- 平均值性質:圖像灰度平均值 f ˉ = 1 N 2 F ( 0 , 0 ) \bar{f} = \frac{1}{N^2} F(0,0) fˉ?=N21?F(0,0)。
- 周期性: F ( u , v ) = F ( u + m M , v + n N ) F(u,v) = F(u + mM, v + nN) F(u,v)=F(u+mM,v+nN),m,n 為整數。
- 共軛對稱性:若 f (x,y) 為實函數,則 F ( u , v ) = F ? ( ? u , ? v ) F(u,v) = F^*(-u,-v) F(u,v)=F?(?u,?v)。
- 平移性:空域平移對應頻域相移,頻域平移對應空域相移,幅度不變。
- 旋轉不變性:空域旋轉 θ 角度,頻域也旋轉 θ 角度。
- 頻譜特性分析
- 對稱性:頻譜關于 (M/2,N/2) 對稱,A 區與 D 區、B 區與 C 區對稱。
- 原點平移:將原點從 (0,0) 平移到 (M/2,N/2) 后,頻譜中心變為低頻,邊緣為高頻。
- 傅里葉變換意義
- 簡化計算:空間域卷積等價于頻域乘積。
- 頻域濾波直觀:低頻對應平滑,高頻對應細節,便于設計濾波器。
- 支持特定應用:如特征提取、數據壓縮、紋理分析等。
- 快速傅里葉變換(FFT)
- 實現思路:利用二維 DFT 的可分離性,先對圖像各列進行一維 FFT,再對各行進行一維 FFT。
- Matlab 實現
fft2(f)
:二維傅里葉變換。fftshift(F)
:將頻譜原點平移到中心。log(1+abs(FS))
:對數變換增強頻譜顯示。ifft2(ifftshift(FS))
:二維傅里葉逆變換。
2. 頻率域圖像處理實現
- 基本流程
- 對圖像 f (x,y) 進行二維傅里葉變換得到 F (u,v)。
- 平移頻譜原點到 (M/2,N/2) 得到 F’(u,v)。
- 設計轉移函數 H (u,v) 與 F’(u,v) 相乘,得到濾波后的 G (u,v)。
- 平移 G (u,v) 原點回 (0,0),再反變換得到增強圖像 g (x,y)。
- 轉移函數設計方法
- 直觀選擇理想濾波器模型,通過實驗調整參數。
- 基于頻率與圖像特征的對應關系設計。
- 基于數學或統計準則設計(如最小均方誤差)。
- 空間域與頻域的聯系:空間域卷積對應頻域乘積,頻域濾波器可轉換到空間域濾波。
3. 頻率域低通濾波(去噪)
- 理想低通濾波器(ILPF)
- 轉移函數: H ( u , v ) = { 1 , D ( u , v ) ≤ D 0 0 , D ( u , v ) > D 0 H(u,v) = \begin{cases} 1, & D(u,v) \leq D_0 \\0, & D(u,v) > D_0 \end{cases} H(u,v)={1,0,?D(u,v)≤D0?D(u,v)>D0??,其中 D ( u , v ) = ( u ? M / 2 ) 2 + ( v ? N / 2 ) 2 D(u,v) = \sqrt{(u - M/2)^2 + (v - N/2)^2} D(u,v)=(u?M/2)2+(v?N/2)2?, D 0 D_0 D0? 為截止頻率。
- 特性:完全通過截止頻率內的低頻,衰減高頻,易產生振鈴效應。
- 巴特沃斯低通濾波器(BLPF)
- 轉移函數: H ( u , v ) = 1 1 + [ D ( u , v ) / D 0 ] 2 n H(u,v) = \frac{1}{1 + \left[D(u,v)/D_0\right]^{2n}} H(u,v)=1+[D(u,v)/D0?]2n1?,n 為階數,n 越小過渡越平滑,振鈴效應越弱。
- 特性:平滑過渡,無明顯截止邊界,階數越高越接近理想濾波器,振鈴效應越明顯。
- 高斯低通濾波器(GLPF)
- 轉移函數: H ( u , v ) = exp ? ( ? D 2 ( u , v ) 2 D 0 2 ) H(u,v) = \exp\left(-\frac{D^2(u,v)}{2D_0^2}\right) H(u,v)=exp(?2D02?D2(u,v)?),D0決定濾波器寬度。
- 特性:無振鈴效應,過渡平滑,高頻衰減快,保留更多低頻細節。
4. 頻率域高通濾波(增強邊緣)
- 理想高通濾波器(IHPF)
- 轉移函數: H ( u , v ) = { 0 , D ( u , v ) ≤ D 0 1 , D ( u , v ) > D 0 H(u,v) = \begin{cases} 0, & D(u,v) \leq D_0 \\1, & D(u,v) > D_0 \end{cases} H(u,v)={0,1,?D(u,v)≤D0?D(u,v)>D0??
- 特性:衰減低頻,通過高頻,邊緣增強明顯,但可能丟失太多低頻,導致圖像對比度降低。
- 巴特沃斯高通濾波器(BHPF)
- 轉移函數: H ( u , v ) = 1 1 + [ D 0 / D ( u , v ) ] 2 n H(u,v) = \frac{1}{1 + \left[D_0/D(u,v)\right]^{2n}} H(u,v)=1+[D0?/D(u,v)]2n1?
- 特性:平滑過渡,保留部分低頻,邊緣增強同時保持圖像整體對比度,階數影響過渡帶寬度。
- 高斯高通濾波器(GHPF)
- 轉移函數: H ( u , v ) = 1 ? exp ? ( ? D 2 ( u , v ) 2 D 0 2 ) H(u,v) = 1 - \exp\left(-\frac{D^2(u,v)}{2D_0^2}\right) H(u,v)=1?exp(?2D02?D2(u,v)?)
- 特性:無振鈴效應,高頻增強顯著,同時保留一定低頻,圖像細節清晰,適合細微結構增強。
5. 帶阻與帶通濾波
- 帶阻濾波器
- 作用:消除特定頻率范圍內的噪聲(如周期性干擾)。
- 理想帶阻濾波器: H ( u , v ) = { 0 , D 1 ≤ D ( u , v ) ≤ D 2 1 , 其他 H(u,v) = \begin{cases} 0, & D_1 \leq D(u,v) \leq D_2 \\1, & \text{其他} \end{cases} H(u,v)={0,1,?D1?≤D(u,v)≤D2?其他? 其他,或針對對稱點設計: H ( u , v ) = 1 ? 1 1 + [ D 0 D ( u , v ) / W ] 2 n H(u,v) = 1 - \frac{1}{1 + \left[D_0 D(u,v)/W\right]^{2n}} H(u,v)=1?1+[D0?D(u,v)/W]2n1?,其中 W 為帶寬。
- 特性:阻止以原點為中心的特定頻帶,常用于去除正弦干擾等結構性噪聲。
- 帶通濾波器
- 定義: H ( u , v ) = 1 ? H 帶阻 ( u , v ) H(u,v) = 1 - H_{\text{帶阻}}(u,v) H(u,v)=1?H帶阻?(u,v),即通過帶阻濾波器翻轉得到。
- 特性:允許特定頻帶通過,用于提取特定頻率特征(如紋理分析)。
6. 關鍵公式與總結
濾波器類型 | 轉移函數表達式 | 主要特性 | 應用場景 |
---|---|---|---|
理想低通 | H ( u , v ) = { 1 , D ( u , v ) ≤ D 0 0 , D ( u , v ) > D 0 H(u,v) = \begin{cases} 1, & D(u,v) \leq D_0 \\0, & D(u,v) > D_0 \end{cases} H(u,v)={1,0,?D(u,v)≤D0?D(u,v)>D0?? | 銳截止,振鈴效應明顯 | 簡單去噪,對振鈴不敏感場景 |
巴特沃斯低通 | H ( u , v ) = 1 1 + [ D ( u , v ) / D 0 ] 2 n H(u,v) = \frac{1}{1 + \left[D(u,v)/D_0\right]^{2n}} H(u,v)=1+[D(u,v)/D0?]2n1? | 平滑過渡,n 越大越接近理想 | 通用去噪,需控制振鈴效應 |
高斯低通 | H ( u , v ) = exp ? ( ? D 2 ( u , v ) 2 D 0 2 ) H(u,v) = \exp\left(-\frac{D^2(u,v)}{2D_0^2}\right) H(u,v)=exp(?2D02?D2(u,v)?) | 無振鈴,高頻衰減快 | 保細節去噪,如醫學圖像 |
理想高通 | H ( u , v ) = { 0 , D ( u , v ) ≤ D 0 1 , D ( u , v ) > D 0 H(u,v) = \begin{cases} 0, & D(u,v) \leq D_0 \\1, & D(u,v) > D_0 \end{cases} H(u,v)={0,1,?D(u,v)≤D0?D(u,v)>D0?? | 銳截止,丟失低頻多 | 簡單邊緣增強,不要求對比度 |
巴特沃斯高通 | H ( u , v ) = 1 1 + [ D 0 / D ( u , v ) ] 2 n H(u,v) = \frac{1}{1 + \left[D_0/D(u,v)\right]^{2n}} H(u,v)=1+[D0?/D(u,v)]2n1? | 保留部分低頻,n 控制邊緣銳度 | 通用邊緣增強,自然圖像 |
高斯高通 | H ( u , v ) = 1 ? exp ? ( ? D 2 ( u , v ) 2 D 0 2 ) H(u,v) = 1 - \exp\left(-\frac{D^2(u,v)}{2D_0^2}\right) H(u,v)=1?exp(?2D02?D2(u,v)?) | 無振鈴,細節增強自然 | 精細結構增強,如遙感圖像 |
帶阻 | H ( u , v ) = 1 ? 1 1 + [ D 0 D ( u , v ) / W ] 2 n H(u,v) = 1 - \frac{1}{1 + \left[D_0 D(u,v)/W\right]^{2n}} H(u,v)=1?1+[D0?D(u,v)/W]2n1? | 消除特定頻帶噪聲 | 去除周期性干擾(如條紋) |
帶通 | H ( u , v ) = 1 ? H 帶阻 ( u , v ) H(u,v) = 1 - H_{\text{帶阻}}(u,v) H(u,v)=1?H帶阻?(u,v) | 提取特定頻帶特征 | 紋理分析,頻域特征提取 |
圖像恢復
1. 圖像恢復的基本概念
- 定義:使退化圖像去除退化因素,以最大保真度恢復成原圖像的技術。
- 與圖像增強的區別
- 圖像增強:改進圖像視覺效果。
- 圖像恢復:去除退化因素,復原被退化圖像,去模糊屬于圖像恢復技術。
2. 圖像的退化模型
- 常見退化現象的物理模型
- 造成退化的因素:透鏡像差 / 色差、聚焦不準(失焦)、模糊(限制頻譜寬度)、噪聲(統計過程)、抖動(機械、電子)等。
- 常見的 4 種退化現象的物理模型:非線性退化、空間模糊退化、平移退化、疊加隨機噪聲退化。
- 圖像退化舉例:成像模糊、運動成像模糊、光脈沖退化、抖動模糊等。
- 圖像退化模型的表示:設原圖像為f(x,y),退化過程可視為系統H作用于原圖像并疊加噪聲n(x,y),退化模型表示為 g ( x , y ) = H [ f ( x , y ) ] + n ( x , y ) g(x,y)=H[f(x,y)]+n(x,y) g(x,y)=H[f(x,y)]+n(x,y)。
3. 逆濾波圖像恢復
- 無約束最小二乘方恢復:在最小均方誤差意義下,通過求退化后實際圖像g與退化圖像估值的模平方最小值來恢復圖像,不施加約束。
- 逆濾波圖像恢復方法:對式 g ( x , y ) = H [ f ( x , y ) ] + n ( x , y ) g(x,y)=H[f(x,y)]+n(x,y) g(x,y)=H[f(x,y)]+n(x,y)兩邊取傅里葉變換,可得 F ( u , v ) = G ( u , v ) H ( u , v ) F(u,v) = \frac{G(u,v)}{H(u,v)} F(u,v)=H(u,v)G(u,v)?,求反變換得到恢復圖像。
- 無約束圖像恢復的病態性:若H(u,v)在u?v平面取零或很小,噪聲項會被放大主導恢復結果,導致不穩定解,可采用有約束恢復或在頻域中心附近復原。
4. 維納濾波圖像恢復
- 有約束最小二乘方恢復:為克服病態性施加約束,需知道噪聲的模平方,可通過噪聲均值和方差表示,采用拉格朗日乘數法求解。
- 維納濾波圖像恢復方法:總體思路是使估計圖像與原圖像的均方誤差最小,標準維納濾波器公式為 F ( u , v ) = H ? ( u , v ) G ( u , v ) ∣ H ( u , v ) ∣ 2 + S n ( u , v ) / S f ( u , v ) F(u,v) = \frac{H^*(u,v)G(u,v)}{\vert H(u,v) \vert^2 + S_n(u,v)/S_f(u,v)} F(u,v)=∣H(u,v)∣2+Sn?(u,v)/Sf?(u,v)H?(u,v)G(u,v)?,其中 Sn(u,v) 為噪聲功率譜,Sf(u,v) 為圖像功率譜。當噪聲為白噪聲時,Sn(u,v) 為常數,可近似用系數 K 代替 Sn(u,v)/Sf(u,v)。
5. 勻速直線運動模糊的恢復
在曝光瞬間相機與目標的相對勻速直線運動造成圖像模糊,設景物在 x 方向勻速運動,曝光時間 T 內移動距離 c,則模糊圖像為 g ( x , y ) = ∫ 0 T f ( x ? c t , y ) d t g(x,y) = \int_0^T f(x-ct,y) \, dt g(x,y)=∫0T?f(x?ct,y)dt,可據此推出恢復模型。
6. 圖像噪聲與被噪聲污染圖像的恢復
- 圖像噪聲
- 常用圖像噪聲的概率密度函數
- 高斯噪聲:概率密度函數為 p ( z ) = 1 2 π σ e ? ( z ? μ ) 2 2 σ 2 p(z) = \frac{1}{\sqrt{2\pi}\sigma} e^{-\frac{(z-\mu)^2}{2\sigma^2}} p(z)=2π?σ1?e?2σ2(z?μ)2?,源于電子電路噪聲和傳感器噪聲,是白噪聲的特例。
- 瑞利噪聲:概率密度函數為 p ( z ) = 2 ( z ? a ) b e ? ( z ? a ) 2 b p(z) = \frac{2(z-a)}{b} e^{-\frac{(z-a)^2}{b}} \\ p(z)=b2(z?a)?e?b(z?a)2?,均值為 a + π b 4 a + \sqrt{\frac{\pi b}{4}} \\ a+4πb??,方差為 b ( 4 ? π ) 4 \frac{b(4-\pi)}{4} \\ 4b(4?π)?,形成于深度成像、超聲波圖像。
- 均勻分布噪聲:概率密度函數為 p ( z ) = 1 b ? a ( a ≤ z ≤ b ) p(z) = \frac{1}{b-a} \quad (a \leq z \leq b) \\ p(z)=b?a1?(a≤z≤b),均值為 a + b 2 \frac{a+b}{2} \\ 2a+b?,方差為 ( b ? a ) 2 12 \frac{(b-a)^2}{12} 12(b?a)2?。
- 脈沖噪聲(椒鹽噪聲):雙極脈沖噪聲概率密度為 P ( z = a ) = P a P(z=a) = P_a \\ P(z=a)=Pa?, P ( z = b ) = P b P(z=b) = P_b \\ P(z=b)=Pb?,形成于快速瞬變、誤切換,負脈沖為黑點,正脈沖為白點。
- 其他噪聲:周期噪聲(電子或電磁干擾)、指數和 Gamma 分布噪聲(激光成像)。
- 圖像噪聲的分類
- 加性噪聲:與圖像信號相加,獨立于圖像,表示為 g ( x , y ) = f ( x , y ) + n ( x , y ) g(x,y)=f(x,y)+n(x,y) g(x,y)=f(x,y)+n(x,y)。
- 乘性噪聲:與圖像信號相乘,幅值與圖像灰度有關,表示為 g ( x , y ) = f ( x , y ) + n 1 ( x , y ) g(x,y)=f(x,y)+n_1(x,y) g(x,y)=f(x,y)+n1?(x,y),紅外圖像中的散斑噪聲包含乘性和加性成分。
- 給圖像疊加噪聲的方法:以加性零均值高斯噪聲為例,通過生成隨機數計算噪聲值并疊加到圖像上。
- 圖像的信噪比:定義為 S N R = ∑ x , y f 2 ( x , y ) ∑ x , y [ g ( x , y ) ? f ( x , y ) ] 2 SNR = \frac{\sum_{x,y} f^2(x,y)}{\sum_{x,y} [g(x,y)-f(x,y)]^2} SNR=∑x,y?[g(x,y)?f(x,y)]2∑x,y?f2(x,y)?,對數表示為 S N R d B = 10 log ? 10 S N R SNR_{dB} = 10\log_{10} SNR \\ SNRdB?=10log10?SNR,單位分貝。
- 常用圖像噪聲的概率密度函數
- 被噪聲污染圖像的恢復
- 諧波均值濾波:濾波器為 f ^ ( x , y ) = m n ∑ ( s , t ) ∈ S x y 1 g ( s , t ) \hat{f}(x,y) = \frac{mn}{\sum_{(s,t)\in S_{xy}} \frac{1}{g(s,t)}} f^?(x,y)=∑(s,t)∈Sxy??g(s,t)1?mn?,善于處理高斯噪聲和 “鹽” 噪聲,不適用于 “胡椒” 噪聲。
- 逆諧波均值濾波:濾波器為 f ^ ( x , y ) = ∑ ( s , t ) ∈ S x y g ( s , t ) Q + 1 ∑ ( s , t ) ∈ S x y g ( s , t ) Q \hat{f}(x,y) = \frac{\sum_{(s,t)\in S_{xy}} g(s,t)^{Q+1}}{\sum_{(s,t)\in S_{xy}} g(s,t)^Q} f^?(x,y)=∑(s,t)∈Sxy??g(s,t)Q∑(s,t)∈Sxy??g(s,t)Q+1?,Q 為階數,適合減少椒鹽噪聲,Q 正消 “胡椒”,Q 負消 “鹽”,Q=?1 退化為諧波均值濾波。
- 中點濾波:定義為 f ^ ( x , y ) = 1 2 [ max ? ( s , t ) ∈ S x y g ( s , t ) + min ? ( s , t ) ∈ S x y g ( s , t ) ] \hat{f}(x,y) = \frac{1}{2} \left[ \max_{(s,t)\in S_{xy}} g(s,t) + \min_{(s,t)\in S_{xy}} g(s,t) \right] f^?(x,y)=21?[(s,t)∈Sxy?max?g(s,t)+(s,t)∈Sxy?min?g(s,t)],對高斯和均勻分布噪聲效果好。
- 自適應中值濾波:基于窗口內圖像統計特性,能處理更大沖激噪聲,保存細節,優于傳統中值濾波。
7. 幾何失真的校正
- 坐標的幾何校正:原圖像坐標 (x,y) 與畸變圖像坐標 (x′,y′) 的關系為 x′=X(x,y),y′=Y(x,y),線性失真時 X ( x , y ) = a 0 + a 1 x + a 2 y X(x,y)=a_0 +a_1x+a_2y X(x,y)=a0?+a1?x+a2?y, Y ( x , y ) = b 0 + b 1 x + b 2 y Y(x,y)=b_0 +b_1x+b_2y Y(x,y)=b0?+b1?x+b2?y,非線性二次失真時包含二次項,通過控制點建立方程組求解待定系數,確定變換模型。
- 灰度值恢復:圖像恢復中計算出的坐標可能為非整數,需灰度插值,最近鄰插值法將非整數坐標點的灰度值取為最近鄰整數坐標點的灰度值,步驟為劃分四邊形區域、確定對應點、建立方程組、映射坐標、選擇最近鄰點、賦值灰度。
圖像壓縮編碼
1. DCT 變換(離散余弦變換)
- 基本概念
- 定義:DCT(Discrete Cosine Transform)是一種將圖像從空間域轉換到頻率域的變換方法,利用余弦函數的偶對稱性,僅涉及實數運算,計算效率高。
- 優勢:變換結果保持頻率特性,與人類視覺系統特性適應,應用廣泛。
- 一維 DCT
- 延拓:將實數離散序列 f (x) 延拓為以 x=0 為中心的偶對稱序列 fs (x)。
- 正變換公式: F ( u ) = 1 2 K ( u ) ∑ x = 0 M ? 1 f ( x ) cos ? ( ( 2 x + 1 ) u π 2 M ) F(u) = \frac{1}{\sqrt{2}} K(u) \sum_{x=0}^{M-1} f(x) \cos\left(\frac{(2x+1)u\pi}{2M}\right) F(u)=2?1?K(u)∑x=0M?1?f(x)cos(2M(2x+1)uπ?)其中, K ( u ) = { 1 2 , u = 0 1 , u = 1 , 2 , … , M ? 1 K(u) = \begin{cases} \frac{1}{\sqrt{2}}, & u = 0 \\1, & u = 1, 2, \dots, M-1 \end{cases} K(u)={2?1?,1,?u=0u=1,2,…,M?1?。
- 反變換公式: f ( x ) = 1 2 ∑ u = 0 M ? 1 K ( u ) F ( u ) cos ? ( ( 2 x + 1 ) u π 2 M ) f(x) = \frac{1}{\sqrt{2}} \sum_{u=0}^{M-1} K(u) F(u) \cos\left(\frac{(2x+1)u\pi}{2M}\right) f(x)=2?1?∑u=0M?1?K(u)F(u)cos(2M(2x+1)uπ?)
- 矩陣表示:以 M=4 為例,正變換矩陣和反變換矩陣分別為特定形式。
- 二維偶 DCT
- 延拓方式:將 N×N 圖像數據矩陣圍繞左邊緣和下邊緣延拓成 2N×2N 的偶對稱圖像。
- 正變換公式: F ( u , v ) = 2 N K ( u ) K ( v ) ∑ x = 0 N ? 1 ∑ y = 0 N ? 1 f ( x , y ) cos ? ( ( 2 x + 1 ) u π 2 N ) cos ? ( ( 2 y + 1 ) v π 2 N ) F(u,v) = \frac{2}{N} K(u) K(v) \sum_{x=0}^{N-1} \sum_{y=0}^{N-1} f(x,y) \cos\left(\frac{(2x+1)u\pi}{2N}\right) \cos\left(\frac{(2y+1)v\pi}{2N}\right) F(u,v)=N2?K(u)K(v)∑x=0N?1?∑y=0N?1?f(x,y)cos(2N(2x+1)uπ?)cos(2N(2y+1)vπ?)
- 反變換公式: F ( u , v ) = 2 N K ( u ) K ( v ) ∑ x = 0 N ? 1 ∑ y = 0 N ? 1 f ( x , y ) cos ? ( ( 2 x + 1 ) u π 2 N ) cos ? ( ( 2 y + 1 ) v π 2 N ) F(u,v) = \frac{2}{N} K(u) K(v) \sum_{x=0}^{N-1} \sum_{y=0}^{N-1} f(x,y) \cos\left(\frac{(2x+1)u\pi}{2N}\right) \cos\left(\frac{(2y+1)v\pi}{2N}\right) F(u,v)=N2?K(u)K(v)∑x=0N?1?∑y=0N?1?f(x,y)cos(2N(2x+1)uπ?)cos(2N(2y+1)vπ?)
- 計算步驟:延拓、求 DFT、乘因子、取實部、取前 N 項。
- 基函數與基圖像
- 二維 DCT 的正、反變換核 Q (x,y,u,v) 稱為基函數,對應基圖像。當 N=4 時,有 16 個基圖像塊。
2. 數字圖像壓縮編碼基礎
- 信息相關
- 圖像像素間存在較強相關性,利用相關性減少冗余可實現壓縮。例如,黑白像素序列通過行程編碼減少數據量。
- 信息冗余
- 編碼冗余:灰度級編碼使用多于實際需要的編碼符號。
- 像素間冗余:單個像素信息可通過相鄰像素推斷,如平滑區域像素值相近。
- 心理視覺冗余:視覺處理中不重要的信息,如高頻細節對視覺貢獻小。
- 信源編碼及其分類
- 目標:在滿足圖像質量條件下,用最少比特數表示圖像,減少存儲和提高傳輸效率。
- 分類:
- 無失真編碼(無損壓縮):不引入失真,如霍夫曼編碼。
- 有失真編碼(有損壓縮):在一定比特率下獲得最佳保真度,如 JPEG 壓縮。
3. 圖像編碼模型
- 系統模型:包括信源編碼器、信道編碼器、信道、信道解碼器、信源解碼器。
- 信道編碼與漢明編碼
- 漢明編碼:線性錯誤檢測與糾正碼,添加校驗位檢測并糾正單比特錯誤。
- 編碼步驟:以 4bit 數據為例,生成 7 位漢明碼,通過奇偶校驗位覆蓋數據位。
- 解碼步驟:計算校驗字,非零表示有錯誤,翻轉對應位糾正。
4. 數字圖像的信息熵
- 信息熵定義:信源符號集 X 的熵 H ( X ) = ? ∑ P ( x i ) log ? 2 P ( x i ) H(X) = -\sum P(x_i) \log_2 P(x_i) H(X)=?∑P(xi?)log2?P(xi?),單位為 bit / 符號,表示信源的平均信息量。
- 與平均編碼長度關系:熵是編碼所需比特數的下限,非均勻分布時可通過變長編碼減少平均碼長。
- 數字圖像信息熵:對于灰度級分布為 X={0,1,…,L-1} 的圖像,熵 H = ? ∑ i = 0 L ? 1 p i log ? 2 p i H = -\sum_{i=0}^{L-1} p_i \log_2 p_i H=?∑i=0L?1?pi?log2?pi?,其中p**i為灰度級 i 的概率。
5. 幾種基本的變長編碼方法
- 費諾碼
- 編碼步驟:按概率非遞增排列符號,分組使概率和相等或相近,每組賦值 0 或 1,直至每個符號獨立。
- 實例:對概率分布為 {0.25,0.125,0.0625,…} 的符號集編碼,計算平均碼長。
- 霍夫曼編碼
- 編碼步驟:按概率遞減排列符號,合并最小概率的兩個符號,賦值 0 和 1,重復直至概率和為 1,逆序路徑得編碼。
- 優點:平均碼長最短,當概率為 2 的指數時達到熵下限。
- 應用:創建編碼表,對信源符號流編碼,如國際傳真標準。
- 算術編碼
- 原理:將信源符號序列映射到 [0,1) 區間的子區間,子區間寬度為序列概率,用區間內實數表示序列。
- 步驟:建立概率模型,分割區間,最終得到碼字,如對序列 a1a2a2a3a4 編碼。
6. 位平面編碼
- 位平面分解:將 m 位灰度圖像分解為 m 個二值位平面,每個平面由同一比特位組成,如 8 位圖像分解為 8 個平面。
- 格雷碼分解編碼
- 問題:二進制碼分解時相鄰像素值小變化可能導致所有位平面突變,降低相關性。
- 解決:用格雷碼分解,相鄰格雷碼只有一位不同,保持相關性。
- 轉換公式:格雷碼 g i = x i ⊕ x i + 1 ( i 從? m ? 2 到? 0 ) g_i = x_i \oplus x_{i+1} \quad (i \text{ 從 } m-2 \text{ 到 } 0) gi?=xi?⊕xi+1?(i?從?m?2?到?0), g m ? 1 = x m ? 1 g_{m-1} = x_{m-1} gm?1?=xm?1?。
7. 游程編碼
- 一維游程編碼
- 概念:相同灰度值的連續像素序列為游程,長度為游長,編碼存儲灰度值 + 游長。
- 國際標準:CCITT T.4(G3)采用一維游程編碼,游長分為終止碼(0-63)和形成碼(>63)。
- 二維游程編碼:基于相對地址編碼,利用行間像素相關性,對黑白過渡點位置編碼。
8. 圖像質量評價 —— 保真度準則
- 主觀評價方法:觀察者對解壓縮圖像質量評分,如 5 分制(優秀、良好、可用、差、不能用)。
- 客觀保真度準則
- 均方誤差(MSE): M S E = 1 M N ∑ x = 0 M ? 1 ∑ y = 0 N ? 1 [ f ( x , y ) ? f ^ ( x , y ) ] 2 MSE = \frac{1}{MN} \sum_{x=0}^{M-1} \sum_{y=0}^{N-1} [f(x,y) - \hat{f}(x,y)]^2 MSE=MN1?∑x=0M?1?∑y=0N?1?[f(x,y)?f^?(x,y)]2。
- 均方信噪比(SNRms): S N R m s = 10 log ? 10 ∑ x = 0 M ? 1 ∑ y = 0 N ? 1 f ( x , y ) 2 ∑ x = 0 M ? 1 ∑ y = 0 N ? 1 [ f ( x , y ) ? f ^ ( x , y ) ] 2 SNR_{ms} = 10 \log_{10} \frac{\sum_{x=0}^{M-1} \sum_{y=0}^{N-1} f(x,y)^2}{\sum_{x=0}^{M-1} \sum_{y=0}^{N-1} [f(x,y) - \hat{f}(x,y)]^2} SNRms?=10log10?∑x=0M?1?∑y=0N?1?[f(x,y)?f^?(x,y)]2∑x=0M?1?∑y=0N?1?f(x,y)2?。
- 峰值信噪比(PSNR): P S N R = 10 log ? 10 25 5 2 M S E PSNR = 10 \log_{10} \frac{255^2}{MSE} PSNR=10log10?MSE2552?,典型值 30-40dB,越高越好。
彩色圖像處理
1. 彩色視覺基礎
-
三基色原理
-
定義:自然界中絕大多數顏色可由紅(R,700nm)、綠(G,546.1nm)、藍(B,435.8nm)三種基色組合或分解而成。
-
相加混色:三基色按不同比例相加得到新顏色。
-
混色結果:
- 紅 + 藍 = 品紅,紅 + 綠 = 黃,綠 + 藍 = 青,紅 + 綠 + 藍 = 白。
- 二次色:由兩基色相加得到的顏色(如品紅、黃、青)。
-
補色關系:紅與青、綠與品紅、藍與黃互為補色(相加為白)。
-
應用:電視、顯示器、錄像等。
-
-
相減混色:通過顏料或染料吸收光實現,基色為青(C)、品紅(M)、黃(Y)。
-
混色結果:
- 白 - 紅 = 青,白 - 綠 = 品紅,白 - 藍 = 黃,白 - 紅 - 綠 - 藍 = 黑。
-
應用:印刷、繪畫、彩色膠片制作等。
-
-
-
CIE 色度圖
-
顏色特性:
-
亮度:顏色的明亮程度,與白 / 黑摻入量相關。
-
色調:描述純色(如紅、黃),反映主要顏色屬性。
-
飽和度:純色被白光稀釋的程度,純色為全飽和,白光加入后飽和度降低。
- 色度圖結構:
- 舌形邊界表示 380nm(紫)到 700nm(紅)的純色,內部點為混合色。
- 中心等能量點飽和度為 0(白光),邊界到中心表示純度降低。
- 兩點連線表示顏色混合比例變化,等能量點到邊界直線表示色調變化。
-
-
2. 彩色模型
-
RGB 模型
-
原理:基于三基色相加混色,通過 R、G、B 分量(0-255)組合表示顏色。
-
空間表示:三維立方體,頂點對應純色(如紅 (255,0,0)、白 (255,255,255)),對角線為灰度值。
-
應用:顯示器、攝像機等硬件設備。
-
-
HSI 模型
-
原理:符合人眼視覺特性,分為色調(H)、飽和度(S)、亮度(I)。
-
H:角度值(0° 為紅,120° 為綠,240° 為藍),反映顏色類別。
-
S:0(灰)到 1(純),表示顏色純度。
-
I:0(黑)到 1(白),表示整體亮度。
- 模型結構:圓形平面(H-S)與亮度軸(I)構成圓柱體,頂部為白光,底部為黑。
-
-
-
RGB 與 HSI 轉換
-
RGB 轉 HSI:
- 亮度: I = R + G + B 3 I = \frac{R+G+B}{3} I=3R+G+B?
- 飽和度: S = 1 ? 3 × min ? ( R , G , B ) R + G + B S = 1 - \frac{3 \times \min(R,G,B)}{R+G+B} S=1?R+G+B3×min(R,G,B)?
- 色調: θ = arccos ? [ 0.5 [ ( R ? G ) + ( R ? B ) ] ( R ? G ) 2 + ( R ? B ) ( G ? B ) ] \theta = \arccos\left[\frac{0.5[(R-G)+(R-B)]}{\sqrt{(R-G)^2+(R-B)(G-B)}}\right] θ=arccos[(R?G)2+(R?B)(G?B)?0.5[(R?G)+(R?B)]?],根據 B 與 G 的大小調整 H 值。
-
HSI 轉 RGB:分 H 的三個區間(0°-120°、120°-240°、240°-360°)使用不同公式計算 R、G、B。
-
-
其他模型
-
CMYK 模型:印刷用減色模型,基色為青(C)、品紅(M)、黃(Y)、黑(K),通過油墨疊加實現顏色。
-
YUV 模型:電視信號傳輸模型,Y 為亮度,U、V 為色差信號,兼容黑白與彩色電視。
-
3. 彩色變換
-
反色變換
-
原理:將 RGB 各分量取反,公式為: g R ( x , y ) = 255 ? f R ( x , y ) , g G ( x , y ) = 255 ? f G ( x , y ) , g B ( x , y ) = 255 ? f B ( x , y ) g_R(x,y) = 255 - f_R(x,y), \quad g_G(x,y) = 255 - f_G(x,y), \quad g_B(x,y) = 255 - f_B(x,y) gR?(x,y)=255?fR?(x,y),gG?(x,y)=255?fG?(x,y),gB?(x,y)=255?fB?(x,y)
-
效果:顏色變為補色(如紅變青,綠變品紅)。
-
-
灰度化處理
-
最大值法:取 R、G、B 中的最大值作為灰度值。
-
平均值法:計算 R、G、B 的算術平均值。
-
加權平均法:按人眼敏感度加權,常用公式: G r a y = 0.299 R + 0.587 G + 0.114 B Gray = 0.299R + 0.587G + 0.114B Gray=0.299R+0.587G+0.114B
-
4. 彩色圖像增強
-
真彩色增強(HSI 模型)
-
亮度增強:對 I 分量應用灰度增強算法(如對比度拉伸、直方圖均衡)。
-
色調增強:調整 H 分量(加減常數,沿色環旋轉顏色)。
-
飽和度增強:縮放 S 分量(乘大于 1 的常數使顏色更鮮明,乘小于 1 的常數使顏色變淡)。
-
-
偽彩色增強(灰度圖轉彩色)
- 密度分層法:將灰度區間映射為不同顏色,適用于突出特定灰度范圍。
- 灰度級 - 彩色變換法:對灰度值應用三個獨立變換,映射為 R、G、B 分量,顏色范圍更廣。
- 頻率濾波法:對傅立葉變換后的頻率分量濾波,逆變換后映射為彩色,與空間頻率相關。
-
假彩色增強
-
原理:從原彩色圖像或多光譜圖像生成新彩色圖像,不反映真實色彩,用于突出細節或遙感分析。
-
方法:線性坐標變換,如 [ G R G G G B ] = [ k 11 k 12 k 13 k 21 k 22 k 23 k 31 k 32 k 33 ] [ f R f G f B ] \begin{bmatrix}G_R \\ G_G \\ G_B\end{bmatrix} = \begin{bmatrix}k_{11} & k_{12} & k_{13} \\ k_{21} & k_{22} & k_{23} \\ k_{31} & k_{32} & k_{33}\end{bmatrix}\begin{bmatrix}f_R \\ f_G \\ f_B\end{bmatrix} ?GR?GG?GB?? ?= ?k11?k21?k31??k12?k22?k32??k13?k23?k33?? ? ?fR?fG?fB?? ?
-
5. 彩色圖像平滑
-
基于 RGB 模型
-
步驟:提取 R、G、B 分量,分別應用灰度平滑算法(如均值濾波),再合成彩色圖像。
- 公式: Y ( x , y ) = 1 M ∑ ( i , j ) ∈ S x y f ( i , j ) Y(x,y) = \frac{1}{M} \sum_{(i,j) \in S_{xy}} f(i,j) Y(x,y)=M1?∑(i,j)∈Sxy??f(i,j),其中 f ( i , j ) f(i,j) f(i,j)為 RGB 向量。
-
-
基于 HSI 模型
- 僅對 I 分量平滑,避免 H、S 分量混合導致顏色失真。
6. 彩色圖像銳化
-
基于 RGB 模型
- 對 R、G、B 分量應用拉普拉斯算子: ? 2 f ( x , y ) = [ ? 2 f R ? 2 f G ? 2 f B ] \nabla^2 f(x,y) = \begin{bmatrix}\nabla^2 f_R \\ \nabla^2 f_G \\ \nabla^2 f_B\end{bmatrix} ?2f(x,y)= ??2fR??2fG??2fB?? ?
-
基于 HSI 模型
- 對 I 分量銳化,保持 H、S 不變,避免顏色變化。
7. 彩色圖像邊緣檢測
-
Di Zenzo 算法
-
基于向量函數,定義梯度向量 u \mathbf{u} u和 v \mathbf{v} v,計算點積 g x x , g y y , g x y g_{xx}, g_{yy}, g_{xy} gxx?,gyy?,gxy?。
-
最大變化率方向: θ ( x , y ) = 1 2 arctan ? ( 2 g x y g x x ? g y y ) \theta(x,y) = \frac{1}{2} \arctan\left(\frac{2g_{xy}}{g_{xx}-g_{yy}}\right) θ(x,y)=21?arctan(gxx??gyy?2gxy??)
-
梯度幅值: F ( x , y ) = λ 1 cos ? 2 θ + λ 2 sin ? 2 θ F(x,y) = \sqrt{\lambda_1 \cos^2\theta + \lambda_2 \sin^2\theta} F(x,y)=λ1?cos2θ+λ2?sin2θ?,其中 λ 1 , λ 2 \lambda_1, \lambda_2 λ1?,λ2?為特征值。
-