本文共 1949 字,大约阅读时间需要 6 分钟。
注:本文转自大神阮一峰的网络日志《》
我对图像处理一直很感兴趣,曾经写过好几篇博客(1,2,3,4)。
前几天读到一篇文章,它提到图像其实是一种波,可以用波的算法处理图像。我顿时有一种醍醐灌顶的感觉,从没想到这两个领域是相关的,图像还可以这样玩!下面我就来详细介绍这篇文章。
我们知道,图像由像素组成。下图是一张 400 x 400 的图片,一共包含了 16 万个像素点。
如果把每一行所有像素(上例是400个)的红、绿、蓝的值,依次画成三条曲线,就得到了下面的图形。
对比一下图像就能发现,曲线波动较大的地方,也是图像出现突变的地方。
综上所述,图像就是色彩的波动:波动大,就是色彩急剧变化;波动小,就是色彩平滑过渡。因此,波的各种指标可以用来描述图像。
频率(frequency)是波动快慢的指标,单位时间内波动次数越多,频率越高,反之越低。
所以,色彩剧烈变化的地方,就是图像的高频区域;色彩稳定平滑的地方,就是低频区域。
物理学对波的研究已经非常深入,提出了很多处理波的方法,其中就有滤波器(filter):过滤掉某些波,保留另一些波。
下面是两种常见的滤波器 。
下面是低通滤波的例子。
下面是高通滤波的例子:
再看一个例子。
浏览器实际上包含了滤波器的实现,因为 Web Audio API 里面定义了声波的滤波。这意味着可以通过浏览器,将lowpass和highpass运用于图像。
lowpass使得图像的高频区域变成低频,即色彩变化剧烈的区域变得平滑,也就是出现模糊效果。
highpass正好相反,过滤了低频,只保留那些变化最快速最剧烈的区域,也就是图像里面的物体边缘,所以常用于边缘识别。
下面这个网址,可以将滤波器拖到图像上,产生过滤后的效果。
更多图像处理的介绍请参考专栏《》和《》相关文章。
更多图像处理的数学基础知识请参考专栏《》
如果阅读本文于您有所获,敬请点赞、评论、收藏,谢谢大家的支持!
如果对文章内容存在疑问,可以在博客评论区留言,或关注:老猿Python 微信公号发消息咨询。
前两个专栏都适合有一定Python基础但无相关知识的小白读者学习,第三个专栏请大家结合《》的学习使用。
对于缺乏Python基础的同仁,可以通过老猿的免费专栏《)从零开始学习Python。
如果有兴趣也愿意支持老猿的读者,欢迎购买付费专栏。
转载地址:http://uab.baihongyu.com/