本文主要是介绍浙江大学谭平计算机视觉SLAM课程上课笔记:05滤波器(对应B站P7),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
5.滤波器
- 声明:本笔记仅为当堂记录的笔记,有些东西不对或者是没有逻辑,仅仅是按照PPT的顺序罗列为方便复习。
声明:本笔记仅为当堂记录的笔记,有些东西不对或者是没有逻辑,仅仅是按照PPT的顺序罗列为方便复习。
逐渐进入图像处理的部分。
用一个领域的平均像素来替换中心像素
一个是高斯filter,一个是Box filter
空域不变,Box Filter是最简单的。高斯的Filter是中心最高四周较低。为了保证图像亮度不变,一般有一个归一化。
这里的边缘怎么办?kernel超过了图像的边界,我们会选择作zero padding。也可以对像素值做一个拓展,就是直接copy边界。
一面砖墙,效果上稍微有些不同,使用高斯的砖缝稍微清楚一些,高频分量保留完整一些。
kernel非常好玩。第一个是中心为1,就是自己。右边是1,可以进行平移。
edge detection是非常经典的,边缘提取。
如果给一个连续函数,找一个不连续点,我们会使用导数来找。
离散的图像是一个差分,向前一个像素,向后去一个像素,两者做差之后代替中心点的像素。
计算机视觉上面复杂在noise。这里我们以一个一维的信号为例子。每一个点的导数都很大。所以需要先做一个denoise。
先做一把denoise 高斯filter。把小的起伏给smooth掉。
高斯(DoG)滤波器的导数。先做卷积在求导=先求导再做卷积。
我们使用DoG一般是先进行滤波,再进行求导。
经典原图:一个是高斯,一个是求导的高斯。本图做的是x方向的梯度,因为线条都是竖向的。
sobel Filter(索伯)这个东西是一个3*3的filter。中间是0起始就是一个blur+一个求导。一般是用于进行边缘提取。
这是一些例子。
这是之前的sobel Filter的例子。
计算图像梯度:
1.首先先用图片×索伯边缘提取器。
2.得到x方向和y方向的导数。
3.为什么看振幅,我们不关心edge的方向:都需要找出来。
这就是计算图像梯度的方法,这里的话我们就是关心x方向和y方向。这里有一张input image,做出来的效果就是这样。一般我们还会进行非极大值抑制,不希望边缘太宽。
不能两张图直接取绝对值相加,不过其实效果差不多。
双边滤波器:下面讲的是更新的滤波器,在不同的地方会用不同的核。高斯滤波讲起,这里是一张image,我们用一个step function,这里还有噪声,然后和高斯核进行卷积,这样的话一个突然的变化就变成一个斜坡了。
这里举得例子是一黑一白,我们不希望就是黑色核白色做了平均,所以传统的核是有缺陷的。
高斯的权重是:离得近,权重大。距离远,权重小。这里又加了一个权重。value差的小,权重越大。两者相加是最后的效果。上面是归一化的公式。
双边滤波器是空间变化的:空域的space权重不变,但是换一个pixel的话value的权重会变。就是spatially-Varient。
从另外一个角度来解读这个事情:其实是一个3D的距离,另一个D是pixel value。
这里拿一维的来举例子。如果加pixel value的话就是不仅加一维距离还要加pixel value。
这里就是在和高斯核做对比。
这里也是一些对比的例子。
还可以进行detail enhancement 就是两张图相减。
这是一个02年的老文章。一个HDR map 到LDR(0-255)
如果输入是HDR的image。用这个平方根的,把亮的地方压缩,暗的地方拉大。value大的地方压瘪的。
把intensity和color分离,因为intensity的变化很大,而color的变化其实不大。所以弄到YUV空间里面。让UV不变而对Y(brightness)使用gamma映射。
但是这里还有一个小问题就是detail没有了。因为压缩intensity不仅把大的起伏压下来了(由黑到白),而且把这个小的细节起伏也给压下来了。高斯filter一下,相减一下得到是detail。
拿到一张图一分为三,UV构成color,而Y上面分成large scale和Detail。detail和color都保持不变,只动large scale。
这是整个过程的pipeline。
2004年上面的文章,两个group的人同时想到的。
我拍照的时候,一个用闪光灯,一个不用,然后做一些操作。零几年的相机去噪不好,所以噪点很多(开闪光灯)。
这个是毛发。
不开闪光灯的话光很柔和,但是图像上面的噪声很多,如果开闪光灯的话,就是很sharp但是这时候光不大好。
A是那张没有闪光灯的图,B是有的。A做一个双边的滤波,range的高斯换成flash的image,这样会保留detail。
这个是pipeline,但是最主要的核心是Joint双边滤波。
Flash去光斑。
mask去hightlight spot。
人眼上也可以运用,去红眼。
input image P和output image Q
先看一下效果,和双边滤波很相似,并且也是spatially-varient但是时间很快。
我们看一下这里到底是怎么求的
各自的intensity减去均值,如果两个pixel处在两边,就是0。如果在一边,就是1,这里ppt写错了。
miu是均值,sigma是标准差,如果i和j一个在
如果两个pixel很极端的话就是0,
如果不极端的话就是接近等于1。
这篇关于浙江大学谭平计算机视觉SLAM课程上课笔记:05滤波器(对应B站P7)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!