0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

讨论卷积在数字图像处理中的应用

Dbwd_Imgtec 来源:未知 作者:李倩 2018-08-28 15:50 次阅读

卷积在信号处理领域有极其广泛的应用,也有严格的物理和数学定义。本文只讨论卷积在数字图像处理中的应用。

在数字图像处理中,有一种基本的处理方法:线性滤波。待处理的平面数字图像可被看做一个大矩阵,图像的每个像素对应着矩阵的每个元素,假设我们平面的分辨率是 1024 * 768,那么对应的大矩阵的行数= 1024,列数=768 。

用于滤波的是一个滤波器小矩阵(也叫卷积核),滤波器小矩阵一般是个方阵,也就是行数和列数相同,比如常见的用于边缘检测的 Sobel 算子 就是两个 3*3 的小矩阵.

进行滤波就是对于大矩阵中的每个像素,计算它周围像素和滤波器矩阵对应位置元素的乘积,然后把结果相加到一起,最终得到的值就作为该像素的新值,这样就完成了一次滤波。

上面的处理过程可以参考这个示意图:

图像卷积计算示意图:

对图像大矩阵和滤波小矩阵对应位置元素相乘再求和的操作就叫卷积(Convolution)或协相关(Correlation).

协相关(Correlation)和卷积(Convolution)很类似,两者唯一的差别就是卷积在计算前需要翻转卷积核,而协相关则不需要翻转.

以 Sobel 算子为例

Sobel 算子 也叫 Sobel 滤波, 是两个 3*3 的矩阵,主要用来计算图像中某一点在横向/纵向上的梯度,看了不少网络上讲解 Sobel 算子 的文章,发现人们常常把它的横向梯度矩阵和纵向梯度矩阵混淆。这可能与 Sobel 算子 在它的两个主要应用场景中的不同用法有关。

Sobel 算子的两个梯度矩阵: Gx 和 Gy

这里以 Wiki 资料为准,Sobel 算子 有两个滤波矩阵:Gx 和 Gy, Gx 用来计算横向的梯度,Gy 用来计算纵向的梯度, 下图就是具体的滤波器:

• 注意:这里列出的这两个梯度矩阵对应于横向从左到右,纵向从上到下的坐标轴,也就是这种:

原点 O -------> x轴 | | | V y轴

Sobel 算子的用途

它可以用来对图像进行边缘检测, 或者用来计算某个像素点的法线向量. 这里需要注意的是:

边缘检测时:Gx 用于检测纵向边缘,Gy 用于检测横向边缘。

计算法线时:Gx 用于计算法线的横向偏移,Gy 用于计算法线的纵向偏移。

计算展开

假设待处理图像的某个像素点周围的像素如下:

那么用 Gx 计算展开为:

横向新值 = (-1)*[左上] + (-2)*[左] + (-1)*[左下] + 1*[右上] + 2*[右] + 1*[右下]

用 Gy 计算展开为:

纵向新值 = (-1)*[左上] + (-2)*[上] + (-1)*[右] + 1*[左下] + 2*[下] + 1*[右下]

前面说过,做图像卷积时需要翻转卷积核,但是我们上面的计算过程没有显式翻转,这是因为 Sobel 算子 绕中心元素旋转 180 度后跟原来一样。不过有些 卷积核 翻转后就变了,下面我们详细说明如何翻转卷积核。

卷积核翻转

前面说过, 图像卷积计算, 需要先翻转卷积核, 也就是绕卷积核中心旋转 180度, 也可以分别沿两条对角线翻转两次, 还可以同时翻转行和列, 这3种处理都可以得到同样的结果.

对于第一种卷积核翻转方法, 一个简单的演示方法是把卷积核写在一张纸上, 用笔尖固定住中心元素, 旋转 180 度, 就看到翻转后的卷积核了.

下面演示后两种翻转方法, 示例如下:

假设原始卷积核为:

方法2:沿两条对角线分别翻转两次

先沿左下角到右上角的对角线翻转, 也就是 a和i, b和f, d和h交换位置, 结果为:

再沿左上角到右下角的对角线翻转,最终用于计算的卷积核为:

方法3:同时翻转行和列

在 Wiki 中对这种翻转的描述:

convolution is the process of flipping both the rows and columns of the kernel and then multiplying locationally similar entries and summing.

也是把卷积核的行列同时翻转,我们可以先翻转行,把 a b c跟 g h i 互换位置, 结果为:

再翻转列, 把 g d a 和 i f c 互换位置,结果为:

在 Wiki 中有一个计算展开式,也说明了这种翻转:

• 注意:这里要跟矩阵乘法区分开,这里只是借用了矩阵符号,实际做的是对应项相乘,再求和。

图像边缘像素的处理

以上都默认待处理的像素点周围都有像素,但是实际上图像边缘的像素点周围的像素就不完整,比如顶部的像素在它上方就没有像素点了,而图像的四个角的像素点的相邻像素更少,我们以一个图像矩阵为例:

位于左上角的像素点的周围就只有右侧和下方有相邻像素,遇到这种情况,就需要补全它所缺少的相邻像素,具体补全方法请参考下一节的代码。

GPU进行图像卷积

如果在 CPU 上实现图像卷积算法需要进行4重循环,效率比较差,所以我们试着把这些卷积计算放到 GPU 上,用 shader 实现,结果发现性能相当好,而且因为顶点着色器和片段着色器本质就是一个循环结构,我们甚至不需要显式的循环,代码也清晰了很多。

图像卷积在代码中的实际应用,下面是一个 GLSL 形式的着色器,它可以根据纹理贴图生成对应的法线图:

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 滤波器
    +关注

    关注

    158

    文章

    7329

    浏览量

    174769
  • 图像处理
    +关注

    关注

    26

    文章

    1224

    浏览量

    55814

原文标题:彻底理解数字图像处理中的卷积——以Sobel算子为例

文章出处:【微信号:Imgtec,微信公众号:Imagination Tech】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    线性卷积在DSP芯片上的实现

    数字信号处理》要做课程设计,题目是:线性卷积在DSP芯片上的实现。要求:给出算法原理,写出主程序。
    发表于 10-08 16:12

    数字图像处理

    1、图像的变换和压缩,利用离散余弦变换(DCT)2、实现图像的真彩色增强3、实现图像的灰度变换,利用直方图均衡化的方法4、使用常用的滤波器对数字图像进行
    发表于 04-11 23:33

    数字图像处理的技术方法和应用

    。早期图像处理的目的是改善图像的质量,它以人为对象,以改善人的视觉效果为目的。数字图像处理作为一门学科大约形成于 20 世纪 60 年代初期
    发表于 11-18 11:45

    数字图像处理

    数字图像处理资料,怎样取边缘,怎样找出确定的圆或线
    发表于 01-21 16:29

    基于FPGA的数字图像处理

    分享一本用fpga做数字图像处理的书。
    发表于 03-05 21:40

    如何设计数字图像处理系统的抗干扰设计?

    目前,由于运算速度快、片上资源丰富和能够实现复杂的线性和非线性算法等原因,DSP已成为通信、计算机和消费电子产品等领域的基础器件,其中在数字图像处理技术显得尤为突出。本文就是介绍基于DSP的
    发表于 10-17 06:14

    MATLAB在数字图像处理中的应用

    介绍了如何利用MATLAB 及其图像处理工具箱进行数字图像处理,并通过一些例子来说明利用MATLAB 图像
    发表于 07-08 08:25 121次下载

    基于Blackfin 561的数字图像的成像处理

    基于Blackfin 561的数字图像的成像处理:摘要:数字图像的成像处理可分为图像处理
    发表于 09-30 20:32 11次下载

    DM642在数字图像处理系统中的应用

    介绍了DM642在数字图像处理系统中的应用,包括系统硬件组成、软件设计原理、EDMA通道技术等。通过对Sobel算法以及改进的Sobel算法的实验验证运行,结果比较,证明了该系统稳定,运行效果良
    发表于 03-21 15:21 21次下载
    DM642<b class='flag-5'>在数字图像</b><b class='flag-5'>处理</b>系统中的应用

    数字图像处理实验报告

    数字图像处理实验报告数字图像处理实验报告数字图像处理实验报告
    发表于 11-11 15:33 0次下载

    数字图像处理试题集

    数字图像处理试题集数字图像处理试题集数字图像处理试题集
    发表于 12-21 15:13 3次下载

    数字图像处理技术__PPT - 复件

    数字图像处理是信息学科一个重要的类别,可以和电子技术结合发展。数字图像处理技术__PPT - 复件资料。
    发表于 06-24 15:33 0次下载

    matlab与数字图像处理的实现

    图像增强是数字图像的预处理,对图像整体或局部特征能有效地改善。 我们讨论了基于直方图的均衡化和规定化处理
    发表于 02-06 11:08 25次下载

    数字图像处理的学习教程免费下载

    数字图像处理在科学和工程应用中得到了广泛的应用。因此,数字图像处理作为研究生课程包括在许多电子和计算机工程课程中。LabVIEW编程的简便性和IMAQ Vision中的许多
    发表于 12-01 08:00 31次下载

    数字图像处理基本的知识(一)

    数字图像处理基本知识(一) demi 在 周二, 04/02/2019 - 13:38 提交 1、数字图像数字图像,又称为数码图像或数位
    的头像 发表于 03-24 17:24 6578次阅读