浙江大学谭平计算机视觉SLAM课程上课笔记:05滤波器(对应B站P7)

声明:本笔记仅为当堂记录的笔记,有些东西不对或者是没有逻辑,仅仅是按照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。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值