时间为友,记录点滴。

我们已经了解过了梯度(一阶微分)的作用,那么为什么要引入二阶微分呢?

二阶微分的作用是什么?

还是看图说话:

很明显,一阶微分已经可以把轮廓辨识出来,但是,对于变化较缓的地方,一阶微分会给出一个比较长的序列,对应到图像上就是轮廓比较“”, 二阶微分只识别跳变的边缘,对应到图像上就是比较“”。而且对像素的陡变的地方,二阶微分会出现有“零交叉”的两个点,这种点对边缘定位非常有作用。

所以,在细节增强方面,二阶微分要比一阶微分好的多。

怎么实现二阶微分?

我在《数字图像处理》中已经介绍了拉普拉斯算子, 简单的说就是对上一章的梯度再做一次梯度:

拉普拉斯在就为我们定义了二阶微分形式,所以我们就直接把它拓展到二维图像

上:

因为任意阶微分都是线性操作,所以拉普拉斯变换也是一个线性算子。为了离散地表达这个共识,我们套用上一章的一个公式变换:

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拉普拉斯算子边缘提取_(二十四)用二阶微分(拉普拉斯算子)实现图像锐化...相关推荐

  1. MATLAB可视化实战系列(二十四)-三维可视化如何利用圆锥图显示向量场?

    前言 在物理学中,我们学习了矢量,知道了磁力线等矢量图.如何画出优美的矢量场图呢?科学计算软件matlab可以很容易地绘制出矢量场图.下面跟随博主一起来看下matlab高级可视化内容,如何利用圆锥图显 ...

  2. 华文行楷字帖欣赏_任政书法:行楷字帖《二十四孝组诗》集字版,美不胜收!...

    原标题:任政书法:行楷字帖<二十四孝组诗>集字版,美不胜收! 本次小编分享:任政行楷书法字帖欣赏<二十四孝组诗>集字版图片24张,<二十四孝>集虞舜.黄庭坚等二十四 ...

  3. matlab火星漫游车转向控制,OSG开发笔记(二十四):OSG漫游之平移与转向

    若该文为原创文章,未经允许不得转载 原博主博客地址:https://blog.csdn.net/qq21497936 本文章博客地址:https://blog.csdn.net/qq21497936/ ...

  4. Docker最全教程之MySQL容器化 (二十四)

    Docker最全教程之MySQL容器化 (二十四) 原文:Docker最全教程之MySQL容器化 (二十四) 前言 MySQL是目前最流行的开源的关系型数据库,MySQL的容器化之前有朋友投稿并且写过 ...

  5. OpenCV学习(二十四 ):角点检测(Corner Detection):cornerHarris(),goodFeatureToTrack()

    OpenCV学习(二十四 ):角点检测(Corner Detection):cornerHarris(),goodFeatureToTrack() 参考博客: Harris角点检测原理详解 Harri ...

  6. 二十四、Struts2中的UI标签

    二十四.Struts2中的UI标签 Struts2中UI标签的优势: 数据回显 页面布局和排版(Freemark),struts2提供了一些常用的排版(主题:xhtml默认 simple ajax) ...

  7. python 分数序列求和公式_Python分数序列求和,编程练习题实例二十四

    本文是关于Python分数序列求和的应用练习,适合菜鸟练习使用,python大牛绕行哦. Python练习题问题如下: 问题简述:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13 要 ...

  8. 异常处理程序和软件异常——Windows核心编程学习手札之二十四

    异常处理程序和软件异常 --Windows核心编程学习手札之二十四 CPU负责捕捉无效内存访问和用0除一个数值这种错误,并相应引发一个异常作为对错误的反应,CPU引发的异常称为硬件异常(hardwar ...

  9. 数字图像处理领域的二十四个典型算法及vc实现、第一章

    数字图像处理领域的二十四个典型算法及vc实现.第一章 作者:July   二零一一年二月二十六日. 参考:百度百科.维基百科.vc数字图像处理. --------------------------- ...

  10. 山海演武传·黄道·第一卷 雏龙惊蛰 第二十二 ~ 二十四章 真龙之剑·星墟列将...

    山海演武传·黄道·第一卷 雏龙惊蛰 第二十二 ~ 二十四章 真龙之剑·星墟列将 "我是第一次--请你,请你温柔一点--"少女一边娇喘着,一边将稚嫩的红唇紧贴在男子耳边,樱桃小嘴盈溢 ...

最新文章

  1. mysql view 能和表关联吗_MySQL 事务隔离及实现,赶快码上收藏!满满干货
  2. java面试题2016_2016最新java面试题 详细版
  3. java执行器是什么_Java 并发编程:任务执行器 Executor 接口
  4. 用access做考场桌贴_利用Word、Excel、Access进行考务安排及学生成绩分析的有效途径-教育文档...
  5. PowerDesigner中为Oracle添加自增id
  6. css深入理解之overflow
  7. java 状态机_Yarn的状态机机制
  8. linux shell的输出效果修改方法(界面颜色)
  9. 独家首发 | 900页阿里文娱技术实战,8大技术栈解析技术全景
  10. 使用WebSocket绕过广告屏蔽插件
  11. 万用表怎么测电池内阻_数字万用表和指针万用表,两者怎么选?
  12. 《4月份数据库技术通讯》.pdf
  13. 实现基于最近邻内插和双线性内插的图像缩放C++实现
  14. 通过对比文件md5值,实现对文件的替换
  15. matlab 打不开excel文件
  16. 按键精灵助手之按钮响应事件
  17. 超级实用的软著申请源代码材料格式文档生成辅助工具——软著源代码工具
  18. 微信小程序之个人界面编写(2023.5.9版)
  19. HG_REPMGR autofailvoer自动故障转移
  20. Pr动态图形模板Mogrt导入失败 Mogrt is Corrupt 解决方法 Motion Graphics Templates is corrupt.

热门文章

  1. VC、周星驰为什么都瞧好Web3这门生意?
  2. python里range什么意思_python中range什么意思
  3. 2017年蓝桥杯C语言混搭题解
  4. Google Earth Engine APP(GEE) ——创建一个连续的图例
  5. Java14 新增record 关键字
  6. 自考操作系统-----页置换算法
  7. linux挂载硬盘步骤(简单易用,直接上手,无废话)
  8. CSS position定位之static
  9. js调用打印机自动分页的功能(仅适用于IE浏览器)
  10. python简单练习题