理解图像中卷积操作的含义

理解图像中卷积操作的含义原文地址:https://blog.csdn.net/chaipp0607/article/details/72236892?locationNum=9&fps=1上文用生动的例子来解释卷积记载了卷积的含义,现在就来看看卷积在图像处理中的应用吧。(ps:本文大部分内容系转载大神的博客,现在csdn强制图片水印,实在感到很无奈!!!)数字图像处理中卷积数字图像是一个二维的离散信号,对…

大家好,又见面了,我是你们的朋友全栈君。

原文地址:https://blog.csdn.net/chaipp0607/article/details/72236892?locationNum=9&fps=1

上文用生动的例子来解释卷积记载了卷积的含义,现在就来看看卷积在图像处理中的应用吧。(ps:本文大部分内容系转载大神的博客,现在csdn强制图片水印,实在感到很无奈!!!)


数字图像处理中卷积

数字图像是一个二维的离散信号,对数字图像做卷积操作其实就是利用卷积核(卷积模板)在图像上滑动,将图像点上的像素灰度值与对应的卷积核上的数值相乘,然后将所有相乘后的值相加作为卷积核中间像素对应的图像上像素的灰度值,并最终滑动完所有图像的过程。 在这里插入图片描述

这张图可以清晰的表征出整个卷积过程中一次相乘后相加的结果:该图片选用3*3的卷积核,卷积核内共有九个数值,所以图片右上角公式中一共有九行,而每一行都是图像像素值与卷积核上数值相乘,最终结果-8代替了原图像中对应位置处的1。这样沿着图片一步长为1滑动,每一个滑动后都一次相乘再相加的工作,我们就可以得到最终的输出结果。除此之外,卷积核的选择有一些规则:
1)卷积核的大小一般是奇数,这样的话它是按照中间的像素点中心对称的,所以卷积核一般都是3×3,5×5或者7×7。有中心了,也有了半径的称呼,例如5×5大小的核的半径就是2。
2)卷积核所有的元素之和一般要等于1,这是为了原始图像的能量(亮度)守恒。其实也有卷积核元素相加不为1的情况,下面就会说到。
3)如果滤波器矩阵所有元素之和大于1,那么滤波后的图像就会比原图像更亮,反之,如果小于1,那么得到的图像就会变暗。如果和为0,图像不会变黑,但也会非常暗。
4)对于滤波后的结构,可能会出现负数或者大于255的数值。对这种情况,我们将他们直接截断到0和255之间即可。对于负数,也可以取绝对值。


边界补充问题

上面的图片说明了图像的卷积操作,但是他也反映出一个问题,如上图,原始图片尺寸为77,卷积核的大小为33,当卷积核沿着图片滑动后只能滑动出一个55的图片出来,这就造成了卷积后的图片和卷积前的图片尺寸不一致,这显然不是我们想要的结果,所以为了避免这种情况,需要先对原始图片做边界填充处理。在上面的情况中,我们需要先把原始图像填充为99的尺寸。
常用的区域填充方法包括:
为了画图方便,这里就不用55的尺寸了,用33定义原始图像的尺寸,补充为9*9的尺寸,图片上的颜色只为方便观看,并没有任何其他含义。
原始图像:

在这里插入图片描述

补零填充

在这里插入图片描述

边界复制填充

在这里插入图片描述

镜像填充

在这里插入图片描述

块填充

在这里插入图片描述

以上四种边界补充方法通过看名字和图片就能理解了,不在多做解释。


不同卷积核下卷积意义

我们经常能看到的,平滑,模糊,去燥,锐化,边缘提取等等工作,其实都可以通过卷积操作来完成,下面我们一一举例说明一下:

一个没有任何作用的卷积核:

卷积核:
在这里插入图片描述

将原像素中间像素值乘1,其余全部乘0,显然像素值不会发生任何变化。

平滑均指滤波:

卷积核:
在这里插入图片描述

该卷积核的作用在于取九个值的平均值代替中间像素值,所以起到的平滑的效果:
在这里插入图片描述

在这里插入图片描述

高斯平滑:

卷积核:

在这里插入图片描述

高斯平滑水平和垂直方向呈现高斯分布,更突出了中心点在像素平滑后的权重,相比于均值滤波而言,有着更好的平滑效果。

在这里插入图片描述

图像锐化:

卷积核:
在这里插入图片描述

该卷积利用的其实是图像中的边缘信息有着比周围像素更高的对比度,而经过卷积之后进一步增强了这种对比度,从而使图像显得棱角分明、画面清晰,起到锐化图像的效果。
在这里插入图片描述

除了上述卷积核,边缘锐化还可以选择:

在这里插入图片描述

梯度Prewitt:

水平梯度卷积核:
在这里插入图片描述

在这里插入图片描述

垂直梯度卷积核:
在这里插入图片描述

在这里插入图片描述

梯度Prewitt卷积核与Soble卷积核的选定是类似的,都是对水平边缘或垂直边缘有比较好的检测效果。

Soble边缘检测:

Soble与上述卷积核不同之处在于,Soble更强调了和边缘相邻的像素点对边缘的影响。
水平梯度:
在这里插入图片描述

在这里插入图片描述

垂直梯度:
在这里插入图片描述

在这里插入图片描述

以上的水平边缘与垂直边缘检测问题可以参考:Soble算子水平和垂直方向导数问题

梯度Laplacian:

卷积核:
在这里插入图片描述

在这里插入图片描述

Laplacian也是一种锐化方法,同时也可以做边缘检测,而且边缘检测的应用中并不局限于水平方向或垂直方向,这是Laplacian与soble的区别。下面这张图可以很好的表征出二者的区别:来源于OpenCV官方文档

在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/140311.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • php格式化数字 位数不足前面加0补足

    php格式化数字 位数不足前面加0补足

  • Protel 99SE汉化教程

    Protel 99SE汉化教程Protel99se是一款设计电路原理图和PCB的专业软件,它是由ProklTechnology开发出来的电路板设计软件,拥有功能强大、界面简洁等特点。Protel99se软件是由两大部分组成:电路原理图设计(AdvancedSchematic)和多层印刷电路板设计(AdvancedPCB)。安装教程原文链接:https://blog.csdn.net/weixin_42693097/a…

  • JS 暂时性死区「建议收藏」

    JS 暂时性死区「建议收藏」JS暂时性死区ES6暂时性死区引用ES6暂时性死区只要块级作用域内存在let命令,它所声明的变量就“绑定”(binding)这个区域,不再受外部的影响。vartmp=123;if(true){tmp=’abc’;//ReferenceErrorlettmp;}上面代码中,存在全局变量tmp,但是块级作用域内let又声明了一个局部变量tmp,导致后…

  • lazarus 中文教程_Delphi 项目转Lazarus 教程「建议收藏」

    lazarus 中文教程_Delphi 项目转Lazarus 教程「建议收藏」我的IDE是1.2.4先改成中文打开IDE->Ctrl+Shift+O->赛选器输入disk如下图配置好后点OK;工具栏->File->Restart重启IDE然后你有木有很亲切的感觉我也就认得几个单词,再多我就不认识它了.进入正题.把原有的Delphi项目转成lazarus下面我就不上图了上面上2张图就是为了下面不上图工具快捷键Alt+T-&…

  • Wi-Fi曝安全漏洞 面临KRACK攻击风险

    Wi-Fi曝安全漏洞 面临KRACK攻击风险近日,WPA2被曝存在严重安全漏洞。WPA2在2004年发布,自2006年3月起已经成为一种强制性的标准,是目前使用范围最广的Wi-Fi网络保护协议。何为KRACK攻击?在回答这个问题之前,让我们快速普及一些Crypto101课程的内容。高级加密标准(AES)已经采用了十几年。它是一种对称密钥密码,即使用相同的密钥来加密和解密。虽然传统上标准的AE…

  • html使用toast弹窗,jQuery常用工具之message和toast弹窗插件「建议收藏」

    html使用toast弹窗,jQuery常用工具之message和toast弹窗插件「建议收藏」常用工具message和toast弹窗图片预览常用工具message和toast弹窗浏览器适配支持Chrome所有版本支持Firefox所有版本支持Safari所有版本不支持IE任何版本常用工具message和toast弹窗使用教程默认调用:alert(‘请打开麦克风’)支持多参数:alert({title:’我是标题’,content:’请打开https://huajiakeji.com/’…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号