matlab拉普拉斯算子边缘提取_(二十四)用二阶微分(拉普拉斯算子)实现图像锐化...
时间为友,记录点滴。
我们已经了解过了梯度(一阶微分)的作用,那么为什么要引入二阶微分呢?
二阶微分的作用是什么?
还是看图说话:
很明显,一阶微分已经可以把轮廓辨识出来,但是,对于变化较缓的地方,一阶微分会给出一个比较长的序列,对应到图像上就是轮廓比较“粗”, 二阶微分只识别跳变的边缘,对应到图像上就是比较“细”。而且对像素的陡变的地方,二阶微分会出现有“零交叉”的两个点,这种点对边缘定位非常有作用。
所以,在细节增强方面,二阶微分要比一阶微分好的多。
怎么实现二阶微分?
我在《数字图像处理》中已经介绍了拉普拉斯算子, 简单的说就是对上一章的梯度再做一次梯度:
拉普拉斯在就为我们定义了二阶微分形式,所以我们就直接把它拓展到二维图像
因为任意阶微分都是线性操作,所以拉普拉斯变换也是一个线性算子。为了离散地表达这个共识,我们套用上一章的一个公式变换:
X方向:
Y方向:
综合一下:
有了公式,就容易得到基于拉普拉斯算子的模板:
因为拉普拉斯是一种二阶微分算子,因此其强调的是图像中灰度的突变,并不强调图像的缓慢变换区域。这样一些渐变的浅灰色边线就会变成图片轮廓的背景色。如果我们想要保持原图像并且看到增强的边缘图像,可以把原图和拉普拉斯图像简单叠加。
套用以下公式:
为原图为拉普拉斯处理后的图像为处理的系数为最终保持原图像并且增强边缘的图像
好了,有了上面理论做指导,我们实现一下,看看效果。
在OpenCV中,有现成的API可以给我们使用:
CV_EXPORTS_W
- src_gray,输入图像
- dst,Laplace操作结果
- ddepth,输出图像深度,因为输入图像一般为CV_8U,为了避免数据溢出,输出图像深度应该设置为CV_16S或者更高
- kernel_size,filter mask的规模,我们的mask时3x3的,所以这里应该设置为3
- scale,delta,BORDER_DEFAULT,默认设置就好
C++:
注意点:
1. 因为拉普拉斯是二阶微分,对噪点非常敏感,所以在做锐化之前可以用kernelSize=3的高斯滤波先。
2. 不知道为什么,做出来的拉普拉斯噪声值比较大。
#include
运行结果:
Python:
#!/usr/bin/env python
matlab拉普拉斯算子边缘提取_(二十四)用二阶微分(拉普拉斯算子)实现图像锐化...相关推荐
- MATLAB可视化实战系列(二十四)-三维可视化如何利用圆锥图显示向量场?
前言 在物理学中,我们学习了矢量,知道了磁力线等矢量图.如何画出优美的矢量场图呢?科学计算软件matlab可以很容易地绘制出矢量场图.下面跟随博主一起来看下matlab高级可视化内容,如何利用圆锥图显 ...
- 华文行楷字帖欣赏_任政书法:行楷字帖《二十四孝组诗》集字版,美不胜收!...
原标题:任政书法:行楷字帖<二十四孝组诗>集字版,美不胜收! 本次小编分享:任政行楷书法字帖欣赏<二十四孝组诗>集字版图片24张,<二十四孝>集虞舜.黄庭坚等二十四 ...
- matlab火星漫游车转向控制,OSG开发笔记(二十四):OSG漫游之平移与转向
若该文为原创文章,未经允许不得转载 原博主博客地址:https://blog.csdn.net/qq21497936 本文章博客地址:https://blog.csdn.net/qq21497936/ ...
- Docker最全教程之MySQL容器化 (二十四)
Docker最全教程之MySQL容器化 (二十四) 原文:Docker最全教程之MySQL容器化 (二十四) 前言 MySQL是目前最流行的开源的关系型数据库,MySQL的容器化之前有朋友投稿并且写过 ...
- OpenCV学习(二十四 ):角点检测(Corner Detection):cornerHarris(),goodFeatureToTrack()
OpenCV学习(二十四 ):角点检测(Corner Detection):cornerHarris(),goodFeatureToTrack() 参考博客: Harris角点检测原理详解 Harri ...
- 二十四、Struts2中的UI标签
二十四.Struts2中的UI标签 Struts2中UI标签的优势: 数据回显 页面布局和排版(Freemark),struts2提供了一些常用的排版(主题:xhtml默认 simple ajax) ...
- python 分数序列求和公式_Python分数序列求和,编程练习题实例二十四
本文是关于Python分数序列求和的应用练习,适合菜鸟练习使用,python大牛绕行哦. Python练习题问题如下: 问题简述:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13 要 ...
- 异常处理程序和软件异常——Windows核心编程学习手札之二十四
异常处理程序和软件异常 --Windows核心编程学习手札之二十四 CPU负责捕捉无效内存访问和用0除一个数值这种错误,并相应引发一个异常作为对错误的反应,CPU引发的异常称为硬件异常(hardwar ...
- 数字图像处理领域的二十四个典型算法及vc实现、第一章
数字图像处理领域的二十四个典型算法及vc实现.第一章 作者:July 二零一一年二月二十六日. 参考:百度百科.维基百科.vc数字图像处理. --------------------------- ...
- 山海演武传·黄道·第一卷 雏龙惊蛰 第二十二 ~ 二十四章 真龙之剑·星墟列将...
山海演武传·黄道·第一卷 雏龙惊蛰 第二十二 ~ 二十四章 真龙之剑·星墟列将 "我是第一次--请你,请你温柔一点--"少女一边娇喘着,一边将稚嫩的红唇紧贴在男子耳边,樱桃小嘴盈溢 ...
最新文章
- mysql view 能和表关联吗_MySQL 事务隔离及实现,赶快码上收藏!满满干货
- java面试题2016_2016最新java面试题 详细版
- java执行器是什么_Java 并发编程:任务执行器 Executor 接口
- 用access做考场桌贴_利用Word、Excel、Access进行考务安排及学生成绩分析的有效途径-教育文档...
- PowerDesigner中为Oracle添加自增id
- css深入理解之overflow
- java 状态机_Yarn的状态机机制
- linux shell的输出效果修改方法(界面颜色)
- 独家首发 | 900页阿里文娱技术实战,8大技术栈解析技术全景
- 使用WebSocket绕过广告屏蔽插件
- 万用表怎么测电池内阻_数字万用表和指针万用表,两者怎么选?
- 《4月份数据库技术通讯》.pdf
- 实现基于最近邻内插和双线性内插的图像缩放C++实现
- 通过对比文件md5值,实现对文件的替换
- matlab 打不开excel文件
- 按键精灵助手之按钮响应事件
- 超级实用的软著申请源代码材料格式文档生成辅助工具——软著源代码工具
- 微信小程序之个人界面编写(2023.5.9版)
- HG_REPMGR autofailvoer自动故障转移
- Pr动态图形模板Mogrt导入失败 Mogrt is Corrupt 解决方法 Motion Graphics Templates is corrupt.