Skip to content

Image processing

Image filters

Blur

convolution kernel(filter): A matrix

Gaussion blur

convolution kernel is computed by Guassian function:

\(f(i,j)=\frac{1}{2\pi\sigma^2}e^{-\frac{i^2+j^2}{2\sigma^2}}\)

Sharpening filter

Sharpening is adding high frequencies:

  • original Image I
  • high frequencies image I=I-blur(I)
  • sharpened image=I + (I-blur(I))
\[ \begin{pmatrix} 0 & -1 & 0 \\ -1 & 5 & -1 \\ 0 & -1 & 0 \end{pmatrix} \]

Gradient detection fileters

  • Exact vertical edges
\[ V= \begin{pmatrix} -1 & 0 & -1 \\ -2 & 0 & -2 \\ -1 & 0 & -1 \end{pmatrix} \]
  • Exact horizontal edges \(H=V^T\)

Bilateral filter

  • 在平滑图像(去噪)的同时,尽可能保留边缘的清晰度。

工作原理

对于图像中每个像素 (i, j),其滤波后的值 BF[I]_{i,j} 是其邻域内像素的加权平均:

\[ BF[I]_{i,j} = \frac{1}{W_{i,j}} \sum_{k,l} I_{k,l} \cdot G_{\sigma_s}(||(i,j) - (k,l)||) \cdot G_{\sigma_r}(|I_{i,j} - I_{k,l}|) \]

其中:

  • \( G_{\sigma_s} \)空间域高斯核,由像素间的几何距离决定。距离越远,权重越小。
  • \( G_{\sigma_r} \)值域高斯核,由像素间的灰度值差异决定。差异越大,权重越小。
  • \( W_{i,j} \) 是归一化因子,确保所有权重之和为1。

Image Sampling

Reduce image size: down-sampling

Frequency

  • 图像 = 低频轮廓 + 高频细节/边缘。
  • 傅里叶变换(卷积定理):空域中的离散化采样,等价于频域中原始频谱的周期性复制/延拓
  • 低通滤波器:允许图像中低频信号通过,同时衰减或阻挡高频信号的滤波器。在空间域,通过对像素邻域进行加权平均来实现。高频(边缘、噪声、细节)因平均而被平滑,低频(平坦区域)得以保留。

Alising

  • Alising:信号混叠,指在对连续信号进行离散采样时,由于采样频率不足,导致高频信号被错误地折叠或解释为低频信号的一种失真现象。

reduce alising:

  • increase sampling rate:The signal can be perfectly reconstructed if sampled with a frequency larger than 2f_max(Nyquist-Shannon theorem)
  • anti-alising: filtering out high frequencies before sampling
    1. Convolve the image with low-pass filters
    2. Sample it with a Nyquist rate

Image magnification

This is a inverse process of donw-sampling.

Interpolation

  • Nearest-neighbor:not continuous and smooth
  • Linear:continuous but not smooth
  • Bilinear:continuous, not smooth,利用目标点周围4个最近邻像素,进行两次一维线性插值(先水平后垂直)。
  • Cubic:continuous, smooth

Change aspect ratio

Seam Carving for Content-Aware Image Resizing

Seam Carving(接缝裁剪) 是一种内容感知的图像缩放算法,它通过智能地移除或插入图像中“不重要”的像素路径(称为接缝)来改变图像尺寸,从而最大限度地保留重要内容(如物体、边缘)的视觉完整性。

核心思想

将图像缩放视为一个能量最小化问题:

  • 定义每个像素的能量(如梯度幅值),能量越高表示该像素越“重要”(例如位于边缘或纹理丰富区域)。
  • 接缝是一条从图像一侧延伸到另一侧的8连通像素路径(垂直接缝从上到下,水平接缝从左到右)。
  • 算法迭代地移除能量最低的接缝(对于缩小)或复制能量最低的接缝(对于放大),从而在改变图像尺寸的同时,避免扭曲重要区域。

关键步骤

  1. 能量计算:计算图像的能量图(常用梯度幅值,如Sobel算子)。
  2. 接缝查找:使用动态规划寻找累积能量最小的接缝。
  3. 对于垂直接缝:从上到下计算每个像素的最小累积能量,并记录路径。
  4. 回溯得到能量最小的接缝。
  5. 接缝操作
  6. 缩小:移除该接缝(所有右侧像素左移)。
  7. 放大:复制该接缝(平均插入相似像素)。
  8. 重复迭代:重复步骤1-3,直到达到目标尺寸。

示例

将一幅宽图像变窄时,算法优先移除背景(如天空、草地)中的像素,而非前景人物,从而避免人物被压扁或裁剪。

Comments