先上个简单的示例,看MATLAB中拉普拉斯滤波器是如何实现的:

令原图f=magic(3)

f =

8 1 6

3 5 7

4 9 2

掩膜采用标准Laplacian掩膜:w=fspecial('laplacian',0)

w =

0 1 0

1 -4 1

0 1 0

n=imfilter(f,w,'replicate');默认参数为'same',结果为:

n =

-12 16 -4

8 0 -8

4 -16 12

采用'full'参数,n=imfilter(f,w,'replicate','full');结果为:

n =

0 -7 12 -5 0

-5 -12 16 -4 1

6 8 0 -8 -6

-1 4 -16 12 5

0 5 -12 7 0

=========

实现过程:

①模板旋转180度(和原来一样,因为是对称的模板)

w' =

0 1 0

1 -4 1

0 1 0

②图像边界填充,这里采用'replicate'方式:

>> k=padarray(m,[2 2],'replicate')

k =

8 8 8 1 6 6 6

8 8 8 1 6 6 6

8 8 8 1 6 6 6

3 3 3 5 7 7 7

4 4 4 9 2 2 2

4 4 4 9 2 2 2

4 4 4 9 2 2 2

(黄色背景为原始图像)

③进行卷积运算:

……(逐步计算,直至模板全部移过图像)

④去除边界,得到结果:

上述即用laplacian滤波模板进行图像滤波的过程(实际上是一个空间卷积操作)。

以一幅uint8类灰度图像为例,原图:

直接使用laplacian滤波模板滤波:

>> f=imread('moon.tif');

>> w=fspecial('laplacian',0)

>> g1=imfilter(f,w,'replicate');

>> imshow(g1)

效果并不理想,因为原图是一幅uint8类图像,输出结果仍为uint8类,所有像素均为正值,而拉普拉斯滤波模板中存在负值,变换结果中的所有负值被截掉了。

解决此问题,须先进行类型变换:

f2=im2double(f); %将f转换为归一化的double类图像

然后再进行滤波:

>>g2=imfilter(f2,w,'replicate');

>> imshow(g2,[])

此图像即含有负值的滤波结果,相比于原图,丢失了一些灰度色调,故还需用原图减去此滤波结果(以还原失去的灰度色调):

>> g=f2-g2;figure,imshow(g)

比原图清晰了很多。

另外,使用考虑了对角线元素的中心为8的拉普拉斯算子还可以获得更为清晰的图像:

>> w8=[1 1 1;1 -8 1;1 1 1]

w8 =

1 1 1

1 -8 1

1 1 1

>> g8=f-imfilter(f,w8,'replicate');

>> figure,imshow(g8)

===========

拉普拉斯算子的数学定义:

式(2)为式(1)的数字近似,式(3)中g(x,y)为目标图像,f(x,y)为原始图像。c为1(当掩膜中心系数为正时),c为-1(当掩膜中心系数为负时)

由于laplacian算子是微分操作符,所以它会使图像锐化,并使常量区域为0。

后记:关键点是模板的选取。

拉普拉斯图像增强C语言,拉普拉斯算子进行图像增强相关推荐

  1. matlab关于图像增强的毕业论文,基于MATLAB的图像增强技术处理毕业论文

    基于MATLAB的图像增强技术处理毕业论文 图像增强技术综述内容摘要数字图像处理是指将图像信号转换成数字格式并利用计算机对其进行处理的过程.图像增强是数字图像处理的过程中经常采用的一种方法,它对提高图 ...

  2. 拉普拉斯算子原理 图像增强

    数学基础 拉普拉斯算子,二阶微分线性算子,为什么上来就学二阶微分算子,前文说过,与一阶微分相比,二阶微分的边缘定位能力更强,锐化效果更好,所以我们来先学习二阶微分算子,使用二阶微分算子的基本方法是定义 ...

  3. 拉普拉斯算子原理 图像增强

    转自:https://blog.csdn.net/huang1024rui/article/details/46537205 数学基础 拉普拉斯算子,二阶微分线性算子,为什么上来就学二阶微分算子,前文 ...

  4. OpenCV环境下Laplace(拉普拉斯)和Roberts基本边缘检测算子的实现代码

    图像处理开发需求.图像处理接私活挣零花钱,请加微信/QQ 2487872782 图像处理开发资料.图像处理技术交流请加QQ群,群号 271891601 拉普拉斯算子是最简单的各向同性二阶微分算子,具有 ...

  5. c语言直方图均衡化程序,图像增强 直方图均衡化处理C语言实现.doc

    图像增强 直方图均衡化处理C语言实现 图像增强 直方图均衡化处理C语言实现 #ifndef BMP_H_3_INCLUDED #define BMP_H_3_INCLUDED typedef unsi ...

  6. 5.8 拉普拉斯算子和拉普拉斯矩阵,图拉普拉斯算子推导

  7. 图像增强的计算机实现实验报告,数字图像(图像增强)实验报告

    <数字图像(图像增强)实验报告>由会员分享,可在线阅读,更多相关<数字图像(图像增强)实验报告(13页珍藏版)>请在人人文库网上搜索. 1.实验:图像增强1.实验目的(1)熟悉 ...

  8. python 拉普拉斯锐化_Python+OpenCV拉普拉斯图像锐化

    **Python实现基于OpenCV的拉普拉斯图像锐化** 研一学习数字图像处理(刚萨雷斯版),导师让我用 Python 编写基于拉普拉斯算子的图像锐化,并且是在不直接调用OpenCV的情况下,由于现 ...

  9. matlab拉普拉斯锐化程序,laplace(拉普拉斯)锐化matlab程序

    <laplace(拉普拉斯)锐化matlab程序>由会员分享,可在线阅读,更多相关<laplace(拉普拉斯)锐化matlab程序(6页珍藏版)>请在技术文库上搜索. 1.第二 ...

最新文章

  1. 今晚8点直播 | 双11的背后除了阿里还有顺丰,智慧物流是如何利用深度学习赋能的?...
  2. R语言自定义函数计算dataframe每列中的缺失值NA的个数、缺失值问题及其填充示例
  3. 前端开发课件 202002
  4. WSS 3.0 and MOSS 2007 SP2 发布
  5. c语言中空格算空行吗,1、程序中空格与空行使用规范
  6. 交换机连接控制器_DELL MD3200I存储单双控制器的自由切换
  7. 阿里、京东、美团、百度面试总结
  8. C语言从链表中删除素数,Data Structures 之 链表
  9. 在PyCharm中自动添加文件头、时间日期等信息
  10. windows10下破解开机密码
  11. POI导出excel加水印
  12. jeecms oracle v5_jeecms二次开发总结
  13. WebOffice安装教程Hello World!(win10 IE打开控件问题)
  14. 用java实现简单绘图
  15. 在 Jupyter Notebook 中使用R语言
  16. 个人常用的sql脚本语句
  17. Vue制作一个日程表
  18. Gitea 与 Drone 实践
  19. 智慧树大数据分析python答案_智慧树大数据分析的python基础答案
  20. 实现网站统计之百度统计

热门文章

  1. python中用于创建文件对象的是_Python内置函数________用来打开或创建文件并返回文件对象。...
  2. 【deepin15.9】有道云笔记页面卡死解决办法
  3. js实现仿淘宝商品评价的星级评定效果
  4. 2.编程实现基本遗传算法:对二元函数 f(x,y)=21.5+xsin(4πx)+ysin(20πy)
  5. loj6169 相似序列(可持久化线段树)
  6. 工作之余加班加点开发的项目被MD5“夺走“
  7. G13 智能拨号不好用的解决方法
  8. c语言烟花生日快乐图片,html5 canvas生日快乐文字烟花背景动画特效代码下载
  9. IDEA的安装、IDEA的首次配置、IDEA的联网配置
  10. 入手ThinkPad X61,从此加入“黑社会”