【计算机视觉】Lecture 3:线性算子

回忆:二维梯度

梯度 = 图像 I(x,y)的偏导数向量 = [dI(x,y)/dx , dI(x,y)/dy]
梯度向量场表示最陡上升的方向和坡度(当考虑图像像素值为一个平面/高度图时)

数值导数

有限前向差分
【计算机视觉】Lecture 3:线性算子
有限后向差分
【计算机视觉】Lecture 3:线性算子
有限中心差分:更精准
【计算机视觉】Lecture 3:线性算子

例子:空间图像梯度

【计算机视觉】Lecture 3:线性算子【计算机视觉】Lecture 3:线性算子注意:从现在开始,我们将去掉常数因子1/2。我们在后面去除以它。

更具体地说

【计算机视觉】Lecture 3:线性算子
【计算机视觉】Lecture 3:线性算子
【计算机视觉】Lecture 3:线性算子
【计算机视觉】Lecture 3:线性算子

线性滤波器

一般流程:形成新图像,其像素是原始像素值的加权和,在每个点使用相同的权重集合
性质:输出是输入的一个线性函数;输出是输入的平移不变函数(即输入图像向左移动两个像素,输出也向左移动两个像素)
例子:平均滤波—邻域中像素的平均值
例子:高斯滤波—邻域中像素的加权平均值
例子:找一个导数—邻域中像素的加权平均值
注意:“线性滤波器”中的“线性”表示相邻像素值的线性组合

图像滤波

根据局部领域内像素的某些函数改变图像中的像素
【计算机视觉】Lecture 3:线性算子

线性滤波

最简单:线性滤波,通过领域内像素值的线性组合去替代每一个像素
线性组合的模块称为“卷积核”
【计算机视觉】Lecture 3:线性算子将其视为权加权和 (核指定权重):
100+50+30+40+5*.5+10+10+11+7.5 = 7
当然,我们不想只在一个像素上执行这个操作,而是希望在整个图像上运行这个核”

卷积(二维)

给定一个核(模板)f和图像h,卷积 f * h 定义为
【计算机视觉】Lecture 3:线性算子
1)注意h(x, y)邻域的奇怪索引。结果就是 f 好像在与 h 组合之前旋转了180度一样
2)如果 f 有180度的对称性也没关系
3)加入没有关系,那就使用交叉关联代替
【计算机视觉】Lecture 3:线性算子

卷积例子

【计算机视觉】Lecture 3:线性算子
【计算机视觉】Lecture 3:线性算子【计算机视觉】Lecture 3:线性算子【计算机视觉】Lecture 3:线性算子【计算机视觉】Lecture 3:线性算子【计算机视觉】Lecture 3:线性算子【计算机视觉】Lecture 3:线性算子

实际问题:边界处理

问题:我们如何处理核不能完全覆盖图像边界的那些像素?
【计算机视觉】Lecture 3:线性算子【计算机视觉】Lecture 3:线性算子
不同的边界处理方法指定了不同的方法来定义图像以外像素的值
最简单的方法之一是补零,也就是我们在前面的例子中默认使用的
【计算机视觉】Lecture 3:线性算子其他方法:
复制—每个图像以外的像素用图像中离它最近的像素值代替
【计算机视觉】Lecture 3:线性算子其他方法:
反射—在边界处反射像素值(好像有一面小镜子)
【计算机视觉】Lecture 3:线性算子其他方法:
环绕—当离开图像的右边框时,将环绕到左边框。类似地,当离开图像底部时,会在顶部重新输入。基本上,图像是一个大甜甜圈(或圆环)。
【计算机视觉】Lecture 3:线性算子

Matlab中的卷积

可以用conv和conv2,但可以用更新的版本:Imfilter(image,template{,option1,option2,…})
边界选项:常值,对称,复制,圆形
输出尺寸选项:和图像一样,或者全尺寸 (包括当mask在图像外的时候计算的部分值)
Corr或者conv选项:卷积旋转模板(我们之前所讨论的那样)。相关性没有。
尝试在命令行中输入“help imfilter”了解更多细节

卷积的性质

交换律:fg=gff * g = g * f
结合律:(fg)h=f(gf)(f * g) * h = f * (g * f)
分配律:(fg)h=fh+gh(f * g) * h = f * h + g * h
线性:(afbg)h=afh+bgh(a f * b g) * h = a f * h + b g * h
平移不变性:f(x+t)h=(fh)(x+t)f(x+t) * h = (f * h)(x+t)
微分规则:
【计算机视觉】Lecture 3:线性算子

线性滤波

【计算机视觉】Lecture 3:线性算子F (2m+1)x(2m+1) mask
例如【计算机视觉】Lecture 3:线性算子
【计算机视觉】Lecture 3:线性算子

回到梯度…

【计算机视觉】Lecture 3:线性算子

有限差分滤波器

用卷积核计算有限差分
垂直边:
卷积:【计算机视觉】Lecture 3:线性算子
水平边:
卷积:【计算机视觉】Lecture 3:线性算子

例子:空间图像梯度

【计算机视觉】Lecture 3:线性算子