OpenCV图像锐化原理简述

举报
Y_K_C 发表于 2021/10/10 21:00:16 2021/10/10
【摘要】 声明:本文是OpenCV入门级别的技术分享,主要围绕图像预处理来进行学习,所用语言均为Python。

一、图像锐化简介

前面讲过图像的滤波操作,即平滑操作,一般情况下图像的噪声和边缘信息是储存在高频段,而图像的平滑操作为了降噪会对高频段的信息进行减弱,因此边缘的信息在这个过程中受到损失,图像变得模糊,而图像的锐化操作相反,是对高频段的信息增强,强化图像的边缘信息,主要用于图像的边缘发现。
在前面的平滑操作中,我们一般是对邻域内的像素值进行加权求和或求平均,类似于积分的操作,使得图像变得模糊,锐化操作则是要将图像变得更加清晰,因此要与平滑操作相反,这里我们需要对邻域进行求微分操作,这是一切的锐化操作的基本的思路。

图像锐化的方法

1.微分法

梯度法:
在介绍梯度法之前,要先了解一下像素值变化曲线,像素值变化曲线是指在图像中画一条扫描线,将扫描线上的像素值变化画成曲线即为像素值变化曲线,通过曲线可计算其梯度,如:
image.png
image.png
在每一个点处,沿着其梯度的方向是像素值变化最快的方向,梯度的模与像素值之间的差值相当,而在边缘处往往像素值变化最大,而非边缘处像素值变化较小,因此使用梯度的模或其导出的值来代替原有的像素值可以有效得显示出边缘信息,至于连续性不强的或是离散得图像,一般采用差分法来代替梯度的作用
image.png
image.png
以下是一些用梯度代替像素值(锐化输出)的做法:
(1)直接替代法:即将每一个点梯度的模作为该点的锐化输出:image.png
这种方法虽然简单,但在图像像素值变化平坦的地方其梯度的模较小,使得锐化后的图像偏暗。
(2)阈值判断:设定一个阈值,判断点的梯度的模与阈值的大小关系,根据一定的法则对锐华输出进行选择,如:
image.png
这种方法既可以保留原图背景,又可对图像进行一定程度的锐化。
(3)为背景设定一个特定的像素值:这种方法与(2)相似,主要是为了更多得保存背景信息:
image.png
(4)为边缘设定一个特定的像素值:与(3)相反,主要是为了更多得保留边缘信息:
image.png
(5)二值化:与图像二值化类似:
image.png

2.Robert算子法

Robert算子无方向性,采用对角之间的差分法代替上文提到的梯度:
image.png
本质上也是梯度或其导出值代替像素值的思想。

3.Laplacian算子法

Laplacian算子二阶微分算子,具有旋转不变性,因此可以处理不同方向的图像锐化要求:
Laplacian算子:
image.png
还有离散形式:
image.png
即Laplacian算子可表示为4倍的中心像素值与邻域内其他像素值之和的差值,也可表示为
image.png
即为中心点像素值与邻域内所有像素值的均值的差值的-5倍,并求该值的绝对值,依此可以得出变形的Laplacian算子:
image.png
根据这几个算子可以避免微分计算。

4.高通滤波算法

高通滤波算法采用一个滤波器,抑制低频的像素值,达到锐化的目的,滤波器的工作原理是基于图像卷积操作的工作原理,对应关系为:
image.png
其中的image.png被称为冲激响应,常见的有五种矩阵:
image.png

5.模板匹配法

模板匹配也是利用了图像卷积的原理,并结合了模板匹配相似性计算的思想。简单来说,在图像锐化中,使用了算子(可以理解为卷积核)与邻域内的像素值相乘,得出的值代替原有的邻域,下面介绍两种比较常见的算子:
Prewitt算子:
Prewitt算子有八个方向,对应了八个算子:
image.png
Sobel算子:
Sobel算子是对Prewitt算子的改进,将八个方向简化成两个轴。
Sobel算子有两个轴,一个x轴一个y轴,故其由两个算子组成,为:
image.png
image.png
具体计算方法如下:
image.png
image.png

由于篇幅原因,代码示例将在下一篇介绍

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。