一种抑制undershoot/overshoot锐化算法介绍
一、USM
当增强图像的边缘、细节信息等高频信息时,图像的锐化视觉效果会得到较大提升。提高图像锐化的一种经典算法为非锐化掩码(UNsharp Masking)技术。该技术首先通过高通滤波并与缩放系数相乘,其结果再与原始图像相加,即可对高频信息进行增强。其主要的原理如下图所示:
其中,对图像进行高通滤波的另一种等效方法为:原始图像减去原始图像的低通滤波图像,其结果被称之为“掩码”。因此,上述的USM方法可以表示为:
1. 原始图像减去原始图像低通滤波之后的图像得到掩码M。
2.掩码M与控制锐化强度的权重系数α相乘之后,再与原始图像相加即可得到锐化的图像。
通常来说,USM算法中低通滤波会使用较为常用的高斯滤波。USM算法中高斯滤波的标准差一般是1到20,锐化控制系数α一般为0.2到4.0。下图展示的是高斯函数中不同标准差,相同锐化控制系数的USM效果。
尽管USM实现简单,并且能够适用于大部分应用场景,但是输出图像会有明显的过冲或低冲伪影。为了消除过冲和低冲伪影,必须对对过冲和低冲伪影进行适当控制。
过冲和低冲示意图
二、ADSOC-Adaptive Directional Sharpening with Overshoot Control
1. 亮度提取。该算法从RGB空间转换到YUV空间,对亮度信息Y进行锐化处理。
2.图像纹理区域分析。利用如下图的5*5的高通滤波作用于原始图像,用以区分纹理区域和平坦区域。图像中每个像素经过下述高通滤波处理,进行粗边缘的检测,其结果与用户设置的阈值Th1比较。若是大于该阈值,则认为该像素落入了纹理区域,将进行后续的步骤处理,否则,保留原始像素值。
3.锐化益计算。使用以下方向滤波计算锐化增益并判断其边缘方向。使用以下滤波器是为了更加精确检测边缘。如果某一像素的通过以下某一个边缘检测器检测的结果大于预先设置的阈值Th2,则认为该像素是边缘像素,需要进行锐化处理。
添加到原始像素的增益可以表示为:
其中,gain为锐化增益控制系数,范围为[0,128]。
4.unnder shoot/overshoot 控制。为了控制锐化带来的undershoot、overshoot,引入这个模块。undershoot、overshoot在图像中各自可能表现为黑边黑点、白边白点或者是图像人脸或线条有毛刺、不平滑的毛刺噪声。该模块利用像素的局部信息对锐化Under shoot/overshoot 进行控制。
Pout=Pin+Sharp,添加到原始像素的”sharp”值由前三步计算得出。对于N*N大小(N=5,取决于第二、三步的滤波模板大小)。如果锐化后的输出像素大小Pout落入[Min,...,Max]范围,其中Min=minimum(N,N),Max = Maximum(N,N),则Pout不做任何处理;如果Pout超过[Min,...,Max]范围,则在邻域最大值或最小值(未进行锐化处理的邻域)左右进行适当增强或减小。
————————————————
版权声明:本文为CSDN博主「大熊背」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/lz0499/article/details/119544500
一种抑制undershoot/overshoot锐化算法介绍相关推荐
- PyTorch: torch.optim 的6种优化器及优化算法介绍
import torch import torch.nn.functional as F import torch.utils.data as Data import matplotlib.pyplo ...
- K-means聚类算法的三种改进(K-means++,ISODATA,Kernel K-means)介绍与对比
原文:http://www.cnblogs.com/yixuan-xu/p/6272208.html K-means聚类算法的三种改进(K-means++,ISODATA,Kernel K-means ...
- 深度学习算法和机器学习算法_63种机器学习算法介绍
深度学习算法和机器学习算法 Data Science and analytics are transforming businesses. It has penetrated into all dep ...
- 介绍一种新的群智能算法---黏菌算法
一种新的群智能算法-黏菌算法 介绍一种新的群智能算法-黏菌算法 近些年群智能算法由于其效率较高,使用方便的优点引起了广大科研者的关注与兴趣.最近看文献,温州大学的李世民(现在去复旦读研究生了)提出了一 ...
- 求解最大流的四种算法介绍、利用最大流模型解题入门
求解最大流的四种算法介绍.利用最大流模型解题入门 上一篇中介绍了网络流的基础,最大流最小割定理的证明,下面来看如何求一个容量网络的最大流,这里介绍四种算法:EK算法.SAP算法.DINIC算法.HLP ...
- 分类算法列一下有多少种?应用场景?分类算法介绍、常见分类算法优缺点、如何选择分类算法、分类算法评估
分类算法 分类算法介绍 概念 分类算法 常见分类算法 NBS LR SVM算法 ID3算法 C4.5 算法 C5.0算法 KNN 算法 ANN 算法 选择分类算法 分类算法性能评估 分类算法介绍 概念 ...
- 10种混沌映射优化灰狼算法,可一键切换,可用于优化所有群智能算法,以灰狼算法为例进行介绍...
" 本篇文章采用10种常见的和不常见的混沌映射用于优化群智能算法,代码可一键切换,可用于所有智能算法优化,本篇文章以灰狼算法为例进行介绍" 本文涉及10种混沌映射算法,用于在初始化 ...
- 转——图像锐化算法原理
http://dsqiu.iteye.com/blog/1638589 本文内容构成: 1.图像锐化和边缘检测的基本概念,微分梯度已经差分的定义 2.锐化和边缘检测的像素处理方式(3种) 3.单方向一 ...
- 3.TF-IDF算法介绍、应用、NLTK实现TF-IDF算法、Sklearn实现TF-IDF算法、算法的不足、算法改进
3.TF-IDF 3.1.TF-IDF算法介绍 3.2.TF-IDF应用 3.3.NLTK实现TF-IDF算法 3.4.Sklearn实现TF-IDF算法 3.5.Jieba实现TF-IDF算法 3. ...
最新文章
- hdu1435 稳定婚姻问题
- push_back和emplace_back的区别
- android webview 获取网页内容,在WebView中获取网页中的内容
- 程序员需要关注的十个大数据技术
- ediplus 复制编辑一列_EditPlus等编辑器选中列(块)的方法
- ubuntu14.04 boost动态库找不到 libboost_system.so.1.58.0
- 为什么unity 安装完模块还是找不到sdk_Unity填坑笔记(四)——移植UWP平台
- Atitit 遍历 与循环模式大总结 目录 1.1. 遍历的对象 数组 或对象 或对象数组	1 2. 遍历的概念	2 2.1. 祖先后代同胞 过滤	2 3. 常见的遍历四种方式	2 3.1.
- android studio发包,androidstudio使用gradle打包配置详解.pdf
- ojdbc maven
- 拉格朗日插值的优缺点_对拉格朗日插值法与牛顿插值法的学习和比较
- 众测、专属、渗透测试捡破烂小tips
- 2021年中国物流仓储系统集成商竞争力排行TOP20
- 网页html教学反思,教学反思怎么写
- 励志照亮人生 编程改变命运
- 面试中常考的数学题——截木棍、圆上取点、赛马、红蓝墨水,测试毒药、坐到正确座位问题
- css局域样式使用scoped,防止样式污染
- 关于页面自动提交两次的问题(360浏览器)
- Hbuilder x想调试时却无法检测到IOS手机,但是安卓手机能检测到,这里有解决方案
- 原创:商务通弹窗最新破解方法
热门文章
- wxWidgets:避免内存泄漏
- Boost.MultiIndex 双向映射示例
- boost::random_spanning_tree用法的测试程序
- GDCM:拷贝/复制DataSet的测试程序
- Boost:字符串查找子串测试实例
- VTK:可视化之LabeledDataMapper
- VTK:IO之ReadPlainTextTriangles
- OpenCV k均值聚类kmeans clustering的实例(附完整代码)
- Qt QML模块提供的重要C ++类
- Qt Creator管理项目