OpenCV图像锐化/增强
OpenCV图像锐化/增强
0.综述
1.Laplacian高通滤波算子
2.Laplacian锐化代码实践
3.USM锐化增强算法
4.USM代码实践
0.综述
图像的卷积计算除了可以完成我们前面介绍的模糊去噪、边缘检测等任务外,还可以实现图像锐化/增强的功能。
图像锐化是一种突出和加强图像中景物的边缘和轮廓的技术。在图像中,边缘可以看作是位于一阶导数较大的像素位置,因此可以通过求图像的一阶导数来加强图像的边缘。同样我们也可以通过求图像的二阶导数来完成图像锐化。一般也通过Laplacian滤波加原图权重像素叠加,关于Laplacian算子可以参考下面这篇博客:
https://blog.csdn.net/PecoHe/article/details/95080569
1.Laplacian高通滤波算子
常用的Laplacian高通滤波算子有:
H1=⎡⎣⎢−1−1−1−1c−1−1−1−1⎤⎦⎥ H_1=\left[\begin{matrix}-1 & -1 & -1 \\-1 & c & -1\\-1 & -1& -1 \end{matrix}\right]
H
1
=
⎣
⎡
−1
−1
−1
−1
c
−1
−1
−1
−1
⎦
⎤
当c大于8的时候表示图像锐化,越接近8表示锐化效果越好。
当c等于8的时候表示对图像进行高通滤波。
当c值越大的时候,图像锐化效果在减弱,中心像素值的作用在提升。
H2=⎡⎣⎢0−10−15−10−10⎤⎦⎥ H_2=\left[\begin{matrix}0 & -1 & 0\\-1 &5 & -1\\0 & -1& 0 \end{matrix}\right]
H
2
=
⎣
⎡
0
−1
0
−1
5
−1
0
−1
0
⎦
⎤
2.Laplacian锐化代码实践
Mat h1_kernel = (Mat_<char>(3, 3) << -1, -1, -1, -1, 8, -1, -1, -1, -1);
Mat h2_kernel = (Mat_<char>(3, 3) << 0, -1, 0, -1, 5, -1, 0, -1, 0);
Mat h1_result,h2_result;
filter2D(input, h1_result, CV_32F, h1_kernel);
filter2D(input, h2_result, CV_32F, h2_kernel);
convertScaleAbs(h1_result, h1_result);
convertScaleAbs(h2_result, h2_result);
imshow("h1_result", h1_result);
imshow("h2_result", h2_result);
运行结果:
3.USM锐化增强算法
USM(Unshrpen Mask)算法是对原图像先进行一个高斯滤波,然后用原来的图像像素值减去一个系数乘以高斯滤波后的图像像素值,然后把得到的像素值归到0~255范围内。USM锐化增强算法可以去除一些细小的干扰细节和图像噪声,比一般直接使用卷积锐化算子得到的图像更可靠。
USM锐化公式如下:
原图像−w∗高斯滤波(原图像)/(1−w) 原图像-w*高斯滤波(原图像)/(1-w)
原图像−w∗高斯滤波(原图像)/(1−w)
其中w为上面所述的系数,取值范围为0.1~0.9,一般取0.6。
4.USM代码实践
这里介绍一下OpenCV中的addWeighted函数:
void addWeighted(InputArray src1,
double alpha,
InputArray src2,
double beta,
double gamma,
OutputArray dst,
int dtype = -1);
其中src1,src2分别为两个输入图像,alpha是输入图像1的权重,beta是输入图像2的权重,gamma是输入输出图像作和后添加的数值,该值不要太大。
Mat blur,usm;
GaussianBlur(input, blur, Size(0, 0), 25);
addWeighted(input, 1.5, blur, -0.5, 0, usm);
imshow("usm", usm);
运行结果如下:
OpenCV图像锐化/增强相关推荐
- python opencv图像对比度增强_图像增强、锐化, Python-OpenCV 来实现 4 种方法!
图像增强目的使得模糊图片变得更加清晰.图片模糊的原因是因为像素灰度差值变化不大,如片各区域产生视觉效果似乎都是一样的, 没有较为突出的地方,看起来不清晰的感觉 解决这个问题的最直接简单办法,放大像素灰 ...
- OpenCV图像锐化---USM锐化和Laplace锐化
学更好的别人, 做更好的自己. --<微卡智享> 本文长度为1832字,预计阅读4分钟 前言 图像锐化 (image sharpening) 是补偿图像的轮廓,增强图像的边缘及灰度跳变的部 ...
- OpenCv图像锐化及各种高通滤波
目录 什么是图像锐化以及为什么要进行图像锐化 图像锐化的方法 1.空域滤波的可使用几种方法 1.1梯度法 1.2拉普拉斯算子法 1.3定向滤波法 2.频域方面的高通滤波 2.1理想高通滤波器 2.2巴 ...
- Python 计算机视觉(十)—— OpenCV 图像锐化及边缘检测
参考的一些文章以及论文我都会给大家分享出来 -- 链接就贴在原文,论文我上传到资源中去,大家可以免费下载学习,如果当天资源区找不到论文,那就等等,可能正在审核,审核完后就可以下载了.大家一起学习,一起 ...
- python图像锐化 增强边缘_[Python图像处理]十一.图像锐化与边缘检测之Roberts算子、Prewitt算子、Sobel算子和Laplacian算子,Schar算子...
Roberts算子 Roberts算子即为交叉微分算法,它是基于交叉差分的梯度算法,通过局部差分计算检测边缘线条.常用来处理具有陡峭的第噪声图像,当图像边缘接近于正45度或负45度时,该算法处理效果更 ...
- OpenCV图像锐化(梯度算子Sobel)
梯度算子 • 梯度通过一个二维列向量来定义 • 向量的模值 实践中通常称为梯度图像. • 考虑一个3x3的图像区域,z代表 灰度级,上式在点z5的f值可用 数字方式近似. • 微分滤波器 ...
- OpenCV图像处理 空间域图像增强(图像锐化 1 基于拉普拉斯算子)
http://ggicci.blog.163.com/blog/static/210364096201262123236955/ OpenCV OpenCV 图像锐化 拉普拉斯算子 ( Laplaci ...
- 深度学习——图像锐化
网络上的数据集和验证集每一类都有超过1000的数据量,但是由于手工截图的效率较低,以及房屋矢量影像不够精确,本次学习和验证的最终数据量太小,容易造成训练时的过拟合.过拟合是指为了得到一致假设而使假设变 ...
- 图像增强(拉普拉斯锐化增强)
图1为原图像,图2为拉普拉斯模板滤波器模板和带有对角项的公式的扩展模板进行处理以及锐化后的图像,图3为实践常用拉普拉斯模板1和模板2进行图像处理以及锐化后的图像. 对图像经过拉普拉斯滤波后,可以得到图 ...
最新文章
- 简单几何(推公式) UVA 11646 Athletics Track
- php 提取登录QQsid_php模拟登录qq邮箱(curl命令详解)
- 二叉树最近公共祖先相关题目(Leetcode题解-Python语言)
- andorid 回调的理解
- azure云数据库_如何使用Cloud Shell创建Azure SQL数据库
- 【历史上的今天】8 月 16 日:Debian 诞生;小米手机及 MIUI 系统发布!
- 程序员快放弃 Android 9.0 吧,10.0 正在来的路上!
- Atitit 读取数据库的api orm SQL Builder sql对比 目录 1.1. 提高生产效率的 ORM 和 SQL Builder	1 1.2. SQL Builder 在 SQL
- Vue进阶(贰零陆):Vue 培训课件
- wps PPT 中提取视频
- 小米Note 3完美刷成开发版获取root权限的步骤
- “数据类型不一致: 应为 NUMBER, 但却获得 BINARY”解决方法
- 按键精灵脚本与Total Control手机群控系统的完美结合
- Commitizen 互联网公民的简单提交惯例
- E4A(易安卓)学习——常用组件(一)按钮
- Tableau 仪表板例子1
- 基于vue+exharts的双折线图
- Saiku控制页面展示的数据过长自动换行(二十四)
- ubuntu20.04下好用的截图软件
- 51CTO第一时间公布软考试题及答案
热门文章
- java 镶嵌创建线程_Java多线程——之一创建线程的四种方法
- u9系统的使用方法仓库_新风系统如何使用 新风系统使用方法介绍【图文】
- linux ucontext 类型,协程:posix::ucontext用户级线程实现原理分析 | WalkerTalking
- oracle 加全文索引,oracle全文索引的创建和使用
- epp是什么意思_有效的个人生产力(EPP)——助力洁绿形成组织发展合力
- 学习STM32很简单?
- C编程实践:简单的通讯录
- 史上卖得最多的芯片......原来是这个!
- 电路常识性概念(2)-电容
- 低配服务器装那个系统吗,用低配服务器好还是高配vps