- Image Enhancement - Spatial domain -> 直接對 pixel 進行操作 - Frequency domain -> based on modifying the Fourier transform of an image. - spatial: Contrast Stretching - 比原始圖像具有更高對比度的圖像 - m 以下的灰度級變暗, m 以上的灰度級變亮 - ![](https://i.imgur.com/kgSXFK5.png) - ![](https://i.imgur.com/EVUHjdK.png) - ![](https://i.imgur.com/QKSk5EE.png) - Gray-level Transforms ![](https://i.imgur.com/jI3Dfjf.png) 對比強化的轉換函數 - Image Negative - $s = (L - 1) - r$ - 增強埋藏在黑暗影像中的白色或灰色細節 - 負片影像處理常用在醫學影像 - ![](https://i.imgur.com/ZiXsVnL.png) - ![](https://i.imgur.com/ebrTGzQ.png) - Log Transformation - $s = clog(1 + r)$ - 將影像比較暗的地方提升成較亮的像素值 - ![](https://i.imgur.com/HfoGNU5.png) - Power-law Transformation - $s = cr^ γ$ - $γ < 1$ maps a narrow range of dark input values into a wider range of output values. - $γ > 1$ opposite of the above effect. - The process used to correct this power-low response phenomena is called gamma correction - 如果亮的圖片要調暗一點,gamma 值要 >1;反之 gamma 值要 <1 - 調整照片的明亮度,讓過曝的照片暗一點,曝光度不足的照片亮一點 - ![](https://i.imgur.com/MBbcVWm.png) - ![](https://i.imgur.com/49Yx6Bj.png) - Piecewise-Linear Transform - Contrast Stretching - ![](https://i.imgur.com/qt1HzCo.png) - ![](https://i.imgur.com/i9AyTwQ.png) - Gray-level Slicing - Highlights a specific range of gray-levels in an image - ![](https://i.imgur.com/lvh6FHK.png) - ![](https://i.imgur.com/Rqz7H8M.png) - ![](https://i.imgur.com/69oHiqa.png) - Bit-plane Slicing - Higher order bit planes of an image carry a significant amount of visually relevant details. - Lower order planes contribute more to fine (often imperceptible) details. - 將一張 n 位元 (bit) 灰階影像分解成 n 張單位元影像,相同位元放一起形成一張單位元影像,稱為位元平面影像 (bit-plane image)。 - ![](https://i.imgur.com/GIWeVQX.png) - ![](https://i.imgur.com/dt6a5hv.png) - ![](https://i.imgur.com/lsI5yuW.png) - ![](https://i.imgur.com/Z5RwZyU.png) - Histogram Processing - ![](https://i.imgur.com/i7rNIYo.png) - Histogram Equalization - 找到一個變換 $s=T(r)$ 使得變換後的圖像具有平坦(均衡)的直方圖 - ![](https://i.imgur.com/LJtYhAi.png) --- m 整張影像灰階值的平均值 σ 整張影像灰階值的變異數 - image Averaging - ![](https://i.imgur.com/qdKDYfV.png) - 多張影像同位置的 pixel 取平均值 - 拍出來影像跟原始影像接近 - 去雜訊 - 無法人工處理 - 用在相機上 - Spatial filtering - w(s,t): (2a+1)(2b+1) mask/kernel/filter - w(s,t): convolution - Smoothing Filters / Mean filter - ![](https://i.imgur.com/txqYNbd.png) - 把雜訊減弱,影像紋路或邊界會被模糊掉 - 原始影像每個點抓鄰近 pixel 平均,取出來的值當新的影像相對位置的灰階值 - Median Filters - ![](https://i.imgur.com/vGLQ4ue.png) - 移除 impulse noise (胡椒鹽雜訊) - 保留邊緣 - 要 3*3 的 window - 高斯雜訊效果差 - ![](https://i.imgur.com/5LhXiHs.png) - Sharpening Filters - 強化影像中物體或景觀的邊緣效果 - 導數 -> 前後兩個 pixel 相減 => f(x+1) - f(x) - 二階導數 -> 把一階導數再做一次導數 => f(x+1) - f(x) - f(x) + f(x-1) => f(x+1) + f(x-1) - 2f(x) - ![](https://i.imgur.com/K5UOZn1.png) - Laplacian - 邊緣偵測 - x軸二次微分 + y軸二次微分 => f(x+1, y) + f(x-1, y) + f(x, y+1) + f(x, y-1) - 4f(x, y) - - ![](https://i.imgur.com/JC2Lery.png) - 在第一次微分後,在物體邊緣處會有波峰產生,此時需要設定門檻值,如果該波峰超過門檻值,則判斷為邊緣,但是如果再經過一次微分,則微分後的波形會有通過零點(Zero Crossing) 的現象,更有利於判斷物體邊緣。 - ![](https://i.imgur.com/ZFwSHBk.png) - ![](https://i.imgur.com/9wok9VW.png) - 常見 mask - ![](https://i.imgur.com/9gRH2tC.png) - Unsharp masking & High-boost filtering - f(x, y) = f(x, y) - f'(x,y) (blurred vesion of original image) --- - 平均濾波器 - ![](https://i.imgur.com/aTHWbCP.png) - window 越大影像越模糊,去雜訊效果越好;反之相反 - 高通濾波器 - 保持高頻率部分,減少或消除低頻率部分的濾波器 - 紋路或邊界的地方描述出來 - laplacian / 高斯再 laplacian - ![](https://i.imgur.com/L52kJt1.png) - 高斯濾波器 - 低通濾波器 - ![](https://i.imgur.com/Q37gwaA.png) - ![](https://i.imgur.com/67rUMgr.png) - 標準差和 window 越大 -> 圖像越模糊,去雜訊好 - 適合邊緣偵測 - ![](https://i.imgur.com/QYe2frg.png) - 銳利化 - 強化影像中物體或景觀的邊緣 - ![](https://i.imgur.com/Uju5aNX.png) - ![](https://i.imgur.com/xf9S13N.png) - ![](https://i.imgur.com/6e4lmqa.png) - 非線性濾波器 - 最大濾波器 - max-pooling 的意思 - 暗區域縮小;亮區擴大 - 最小濾波器 - 暗區域擴大;亮區縮小 - 物件邊緣輪廓 - Max - filter - f - min - 臉部辨識 - 先找到眼睛(黑白差異大) -> min/max => 介於 0 和 1 之間,最亮的是眼珠邊緣 - 連線平行找到眼珠 (夾角水平小) - max / min 越亮的地方是眼珠 - ![](https://i.imgur.com/cQiYjIq.png) - 幾何平均濾波器 - ![](https://i.imgur.com/G69LHiU.png) - 把 window 每個 pixel 乘起來後開 1/window 次方 - 去胡椒鹽雜訊比平均濾波器(算術平均)好 - 中位數濾波器 - 取排序數列的中間值 - 去胡椒鹽雜訊好 - ![](https://i.imgur.com/VLED2gd.png) - ROIs, regions of interest - 感興趣區域 - ![](https://i.imgur.com/LXexSM1.png) - 邊緣偵測 - 找出灰階有劇烈變化的邊界 - ![](https://i.imgur.com/OVG8yPb.png) - ![](https://i.imgur.com/OqjxBO3.png) - gradient 梯度 - ![](https://i.imgur.com/xQkZVD1.png) - 表示斜率變化(坡度)的向量 - 梯度越大代表越可能是邊界 - ![](https://i.imgur.com/CvP2xWK.png) - roberts edge detector - ![](https://i.imgur.com/DfEeRjo.png) - Prewitt Operator - ![](https://i.imgur.com/4PaGFqP.png) - sobel - ![](https://i.imgur.com/vexP8Qd.png) - ![](https://i.imgur.com/V3QEBbt.png) - ![](https://i.imgur.com/Y6jGkFD.png) - 二次微分 - 斜率的變化 - 微分兩次比 1st derivative 還容易受到雜訊干擾 - ![](https://i.imgur.com/Me6FRXv.png) 當影像灰階變化不明顯時,用Laplacian 不如用 Sobel;甚至先用 threshold 再找 edge 還比前兩者效果更好 - ![](https://i.imgur.com/i8uLmAl.png) - ![](https://i.imgur.com/tnkrQ1z.png) - ![](https://i.imgur.com/tq7wVNE.png) - ![](https://i.imgur.com/0obLtgP.png) - ![](https://i.imgur.com/wTAydJX.png) - Laplacian of Gaussian, LoG - 高斯去雜訊,拉普拉斯算梯度 - Canny 邊緣偵測 - 平坦處不會有 edge - 等向性 - 正確偵測 edge - positive => 預測為 edge - negative => 預測為 not edge - False => 預測錯 - true => 預測對 - TP 真陽,TN 真陰;FP 偽陽,FN 偽陰 - 準確率 (Accuracy) => (TP+TN) / (TP+FP+FN+TN) - 精確率 (precision) => TP / (TP+FP) - 召回率 (recall) => TP / (TP+FN) - F1 score - 雜訊誤判為 edge => FP - 未能找出正確的 edge => FN - 好的定位 - single response 偵測原理 - 應用高斯濾波器在灰階影像,得到平滑影像 - 應用微分濾波器計算邊緣強度和方向 - Non-maxima suppression - 可能是 edge 的點梯度保持不變(一方向值最大) - 非 edge 的點梯度修為 0 - ![](https://i.imgur.com/Ca2ZkV0.png) - Hystersis thresholding - non edge => 梯度值比 low threshold 低 - hard edge => 梯度值比 high threshold 高 - soft edge => 梯度值介於兩者之間 (可能是 edge 也可能不是) - ![](https://i.imgur.com/pHTCuT2.png) - 整張影像求灰階值的平均值和 otsu => min(平均, otsu) max(平均, otsu) --- - 傅立葉轉換: 對某個函式希望轉換成某個基底的組合表示它 - 泰勒展開式 - 對一組函式可以轉成一組多項式的和表示 - ![](https://i.imgur.com/ZY5LPSv.png) - ![](https://i.imgur.com/JwlTCIY.png) - ![](https://i.imgur.com/dsYpGMx.png) - C0 x=0 + 一階微分$x$ + 二階微分$x^2$ + 三階微分 $x^3$...