RGB表示
- Each RGB color image has 3 numbers (R,G,B) per pixel
- Usually, R, G & B values are in [0, 255]
- Represented as an m × n × 3 matrix
An RGB image can be considered as a vector-valued function
f ( x , y ) = [ r ( x , y ) g ( x , y ) b ( x , y ) ] f(x, y)=[r(x, y) g(x, y) b(x, y)] f(x,y)=[r(x,y)g(x,y)b(x,y)]
点操作 Point operations
g ( x , y ) = a f ( x , y ) + b g(x, y)=a f(x, y)+b g(x,y)=af(x,y)+b
a控制对比度,b控制亮度
Cross-correlation
filtering
box filter
作用
- Replaces each pixel with an average of its neighborhood
- Achieve smoothing effect (remove sharp features)
linear filters
Gaussian filter
G σ = 1 2 π σ 2 e − ( x 2 + y 2 ) 2 σ 2 G_{\sigma}=\frac{1}{2 \pi \sigma^{2}} e^{-\frac{\left(x^{2}+y^{2}\right)}{2 \sigma^{2}}} Gσ=2πσ21e−2σ2(x2+y2)
特性
Gaussian is a low-pass filter: it removes high-frequency components from the image
b.与自身的卷积是另一种高斯
c.使用小型-𝜎 kernel,repeat,并获得与较大-𝜎 内核相同的结果
d.使用高斯核与标准偏差𝜎进行两次卷积与使用对内核进行一次卷积的结果相同相同
e.高斯核是可分离的:它将因子分解为两个一维的乘积高斯
Separable filters
-
执行卷积的过程需要 𝐾 2 𝐾^2 K2操作(乘加)每像素,其中K是卷积核width or height;
-
在许多情况下,此操作可以通执行一维水平卷积,然后执行一维垂直卷积,加速计算,只需要2𝐾 操作每像素。
-
一个卷积核可以分离(成两个)
-
卷积核可以分离成横向卷积h和纵向卷积v, 也就是 K = v h T K=v h^{T} K=vhT
比如高斯滤波器就可以分离成横向和纵向:
G σ ( x , y ) = 1 2 π σ 2 exp − x 2 + y 2 2 σ 2 = ( 1 2 π σ exp − x 2 2 σ 2 ) ( 1 2 π σ exp − y 2 2 σ 2 ) \begin{aligned} G_{\sigma}(x, y) &=\frac{1}{2 \pi \sigma^{2}} \exp -\frac{x^{2}+y^{2}}{2 \sigma^{2}} \\ &=\left(\frac{1}{\sqrt{2 \pi} \sigma} \exp -\frac{x^{2}}{2 \sigma^{2}}\right)\left(\frac{1}{\sqrt{2 \pi} \sigma} \exp -\frac{y^{2}}{2 \sigma^{2}}\right) \end{aligned} Gσ(x,y)=2πσ21exp−2σ2x2+y2=(2πσ1exp−2σ2x2)(2πσ1exp−2σ2y2)
具体例子:
Convolution(卷积)与Cross-correlation(互关性)的区别
- 计算顺序的区别:
(1)cross-correlation的计算顺序是从左到右,从上到下:
我们对图像中的蓝色区域进行Cross-correlation,那么在点E,也就是 (下标从0开始)
(2)convolution的计算顺序是从右到左,从下到上:那么在点E,也就是 (下标从0开始)
那么这就相当于将对H(x)‘filter翻转’了:
上下翻转一次、左右翻转一次 ,然后进行cross-correlation运算,即:
G [ 3 , 3 ] = i ∗ A + h ∗ B + g ∗ C + f ∗ D + e ∗ E + d ∗ F + c ∗ G + b ∗ H + a ∗ I G[3,3]=i * A+h * B+g * C+f * D+e * E+d * F+c * G+b * H+a * I G[3,3]=i∗A+h∗B+g∗C+f∗D+e∗E+d∗F+c∗G+b∗H+a∗I
2.运用在图片上结果的区别
(1)考虑,一张图如下,我们进行cross-correlation,得到的结果如下:
如果换成真实点的图:
我们看到得到的结果就像filter,只不过翻转了下(上下翻转一次、左右翻转一次),相当于实现一次卷积。
(2)现在我们考虑convolution,它相当于将filter翻转了一次再进行cross-correlation,那再加上上面的这次翻转就是两次反转,图片与原来相同。
于是convolution就有了下面的性质Identity:E=[…0,0,1,0,0…],F*E=F。
3.什么时候convolution和cross-correlation是一样
当filter关于x轴和y轴对称时,通常的Average filter和Gaussian filter都是,两者相同。
4Convolution(卷积)与Cross-correlation(互关性)计算题的例子: