1. 拉普拉斯算子

1.1 简介

一种典型的各向同性的微分算子,可用于检测图像中灰度图片的区域

$$ \nabla^{2} f=\frac{\partial^{2} f}{\partial x^{2}}+\frac{\partial^{2} f}{\partial y^{2}} $$

根据上述的差分近似可以推导出

$$ \nabla^{2} f(x, y)=f(x+1, y)+f(x-1, y)+f(x, y+1)+f(x, y-1)-4 f(x, y) $$

1.2 锐化过程

  1. 使用拉普拉斯过滤器得到图像中灰度突变的区域$\nabla^{2} f(x, y)$
  2. 使用原图像加上$\nabla^{2} f(x, y)$,如下

$$ g(x, y)=f(x, y)+c\left[\nabla^{2} f(x, y)\right] $$

  • 其中c为可变参数

2. 测试

图源自skimage

3. 代码

 import numpy as np

3
def laplace_sharpen(input_image, c):
'''
拉普拉斯锐化
:param input_image: 输入图像
:param c: 锐化系数
:return: 输出图像
'''
input_image_cp = np.copy(input_image) # 输入图像的副本 # 拉普拉斯滤波器
laplace_filter = np.array([
[1, 1, 1],
[1, -8, 1],
[1, 1, 1],
]) input_image_cp = np.pad(input_image_cp, (1, 1), mode='constant', constant_values=0) # 填充输入图像 m, n = input_image_cp.shape # 填充后的输入图像的尺寸 output_image = np.copy(input_image_cp) # 输出图像 for i in range(1, m - 1):
for j in range(1, n - 1):
R = np.sum(laplace_filter * input_image_cp[i - 1:i + 2, j - 1:j + 2]) # 拉普拉斯滤波器响应 output_image[i, j] = input_image_cp[i, j] + c * R output_image = output_image[1:m - 1, 1:n - 1] # 裁剪 return output_image

使用二阶微分锐化图像(拉普拉斯算子)基本原理及Python实现的更多相关文章

  1. 数学之路-python计算实战(20)-机器视觉-拉普拉斯算子卷积滤波

    拉普拉斯算子进行二维卷积计算,线性锐化滤波 # -*- coding: utf-8 -*- #线性锐化滤波-拉普拉斯算子进行二维卷积计算 #code:myhaspl@myhaspl.com impor ...

  2. 机器学习进阶-图像梯度计算-scharr算子与laplacian算子(拉普拉斯) 1.cv2.Scharr(使用scharr算子进行计算) 2.cv2.laplician(使用拉普拉斯算子进行计算)

    1. cv2.Scharr(src,ddepth, dx, dy), 使用Scharr算子进行计算 参数说明:src表示输入的图片,ddepth表示图片的深度,通常使用-1, 这里使用cv2.CV_6 ...

  3. 图像边缘检测——几种图像边缘检测算子的学习及python 实现

    本文学习利用python学习边缘检测的滤波器,首先读入的图片代码如下: import cv2 from pylab import * saber = cv2.imread("construc ...

  4. Laplace(拉普拉斯)算子

    [摘要] Laplace算子作为边缘检测之一,和Sobel算子一样也是工程数学中常用的一种积分变换,属于空间锐化滤波操作.拉普拉斯算子(Laplace Operator)是n维欧几里德空间中的一个二阶 ...

  5. 【OpenCV】边缘检测:Sobel、拉普拉斯算子

    推荐博文,博客.写得很好,给个赞. Reference Link : http://blog.csdn.net/xiaowei_cqu/article/details/7829481 一阶导数法:梯度 ...

  6. paper 109 :图像处理中的拉普拉斯算子

    1.基本理论 拉普拉斯算子是最简单的各向同性微分算子,具有旋转不变性.一个二维图像函数 的拉普拉斯变换是各向同性的二阶导数,定义为:   为了更适合于数字图像处理,将该方程表示为离散形式:    另外 ...

  7. 高斯拉普拉斯算子(Laplace of Gaussian)

    高斯拉普拉斯(Laplace of Gaussian) kezunhai@gmail.com http://blog.csdn.net/kezunhai Laplace算子作为一种优秀的边缘检测算子, ...

  8. PIE SDK微分锐化

    1.算法功能简介 微分锐化通过微分使图像的边缘或轮廓突出.清晰.导数算子具有突出灰度变化的作用,对图像运用导数算子,灰度变化较大的点处算得的值较高,因此我们将图像的导数算子运算值作为相应的边界强度,所 ...

  9. opencv边缘检测-拉普拉斯算子

    sobel算子一文说了,索贝尔算子是模拟一阶求导,导数越大的地方说明变换越剧烈,越有可能是边缘. 那如果继续对f'(t)求导呢? 可以发现"边缘处"的二阶导数=0. 我们可以利用这 ...

随机推荐

  1. Jmeter(三) 从上传图片来入门Jmeter

    用Jmeter上传用户头像到人人网 先用抓包工具Fiddler把上传操作的报文抓取下来 开启Jmeter,在测试计划中创建一个线程组,取名为“图片上传” 再在线程组中创建一个HTTP请求 在请求报文中 ...

  2. R_Studio中对xls文件学生总成绩统计求和

    我们发现这张xls表格是没有学生总分的,在xls文件中计算学生总分嫌麻烦时,可以考虑在R Studio中自定义R Script脚本来解决实际问题(计算每个学生的总成绩) .xls数据表中的数据(关键信 ...

  3. 网络1911、1912 C语言第1次作业批改总结

    一.评分规则 重点检查大家代码规范,变量名.大括号换行.缩进等发现不规范倒扣3分. 助教会进PTA查看大家代码的提交列表,发现不规范或抄袭,均扣分 每次作业完成后,至少邀请3个同学点评. 原作业地址: ...

  4. LeetCode 34. 搜索范围(search for a range)

    题目描述 给定一个按照升序排列的整数数组 nums,和一个目标值 target.找出给定目标值在数组中的开始位置和结束位置. 你的算法时间复杂度必须是 O(log n) 级别. 如果数组中不存在目标值 ...

  5. pom文件中的dependencyManagement和dependencies的区别

    dependencies 子项目中,自动继承父项目中的相关依赖 dependencyManagement 只是声明依赖,并不实现引入,因此子项目中需要显示的声明需要用的依赖.如果不在子项目中声明依赖, ...

  6. 字面常量 kotlin(2)

    字面常量数值常量字面值有以下几种:十进制: 123Long 类型用大写 L 标记: 123L十六进制: 0x0F二进制: 0b00001011注意: 不支持八进制Kotlin 同样支持浮点数的常规表示 ...

  7. heigth innerheigt outerheight详解

    height() :height innerHeight(): height + paddingouterHeight(): height + padding + border outerHeight ...

  8. 第七章 SpringCloud之非声明式RestClient:Feign

    study-url:https://cloud.spring.io/spring-cloud-static/spring-cloud-netflix/1.4.6.RELEASE/multi/multi ...

  9. OpenStack 制作image,启动VM,无console log

    OpenStack image 制作官方文档:https://docs.openstack.org/image-guide/create-images-manually.html 如果通过制作的镜像启 ...

  10. 阶段3 2.Spring_03.Spring的 IOC 和 DI_2 spring中的Ioc前期准备

    适应配置的方式解决我们刚才的编码操作 -dist结尾的就是spring 的开发包 解压好的 这里面是约束 libs是扎包 三个为一组,实际上只有21个 自己在使用需要导入jar包的时候,选择这种没有任 ...