图像处理中的高阶拉普​​拉斯核

2023-12-12

在数字图像处理的文献中,您可以找到相对低阶的拉普拉斯核的示例,通常为 3 或 5。我想知道,是否有任何通用方法来构建拉普拉斯核或任意阶?链接或/和参考文献将不胜感激。


The 拉普拉斯算子定义为沿图像每个轴的二阶导数之和。 (即是Hessian矩阵的迹):

  • Δ I = ( ∂2/∂x2 + ∂2/∂y2 ) I

有两种常用的离散化方法:

  1. 使用有限差分。导数算子是卷积[1,-1] or [0.5,0,-0.5],二阶导数算子应用[1,-1]卷积两次,导致卷积[1,-2,1].

  2. 与正则化核的导数进行卷积。最佳正则化核是高斯核,从而产生拉普拉斯高斯算子。结果是exact通过高斯核平滑图像的拉普拉斯。


另一种方法是用插值内核替换正则化内核。我的一位前同事发表了一篇关于这种方法的论文:

A. Hast,“通过双重滤波方法进行一阶和二阶导数的简单滤波器设计”,模式识别快报 42(1):65-71, 2014.

他使用了“双滤波器”,但线性滤波器总是可以简化为单个卷积。

这个想法很简单,采用插值内核,并计算其在整数位置的导数。插值核在原点处始终为 1,在其他整数位置处始终为 0,但它会通过这些“结点”波动,这意味着其导数在这些整数位置处不为零。

在极端情况下,采用理想插值器,正弦函数:

  • sinc(x) = sin(πx) / πx

Its 二阶导数是:

  • d2/dx2(sinc(πx)) = [ (2 - π2x2) sin(πx) - 2πx cos(πx) ] / (πx3)

在 11 个整数位置采样导致:

[ 0.08 -0.125 0.222 -0.5 2 -3 2 -0.5 0.222 -0.125 0.08 ]

但请注意,这里的标准化是不正确的,因为我们正在切断无限长的内核。因此,最好选择较短的内核,例如三次样条核.


A second alternative is to compute the Laplace operator through the Fourier domain. This simply requires multiplying with -πu2v2, with u and v the frequencies.

这是一些 MATLAB 代码,该代码将此滤波器应用于单位脉冲图像,从而生成大小为 256x256 的内核图像:

[u,v] = meshgrid((-128:127)/256,(-128:127)/256);
Dxx = -4*(pi*u).^2;
Dyy = -4*(pi*v).^2;
L = Dxx + Dyy;
l = fftshift(ifft2(ifftshift(L)));
l = real(l);        % discard insignificant imaginary component (probably not necessary in MATLAB, but Octave leaves these values there)
l(abs(l)<1e-6) = 0; % set near-zero values to zero

l这里与上面理想插值器的结果相同,将垂直和水平的插值加在一起,并标准化为长度 256。


最后,我想提一下,拉普拉斯算子是very对噪声敏感(高频显着增强)。这里讨论的方法仅对没有鼻子的数据有意义(大概是合成数据?)。对于任何真实世界的数据,我highly建议您使用高斯拉普拉斯。这将为您提供exact平滑图像的拉普拉斯。平滑对于防止噪声的影响是必要的。如果噪音很小,您可以使用较小的高斯西格玛(例如 σ=0.8)。这将为您提供比任何其他方法更有用的结果。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

图像处理中的高阶拉普​​拉斯核 的相关文章

  • 预测测试图像时出现错误 - 无法重塑大小数组

    我正在尝试使用 TensorFlow 和 Keras 在 Python 中进行图像识别 并且我已经关注了下面的博客 https stackabuse com image recognition in python with tensorfl
  • 劫持系统调用

    我正在编写一个内核模块 我需要劫持 包装一些系统调用 我正在暴力破解 sys call table 地址 并使用 cr0 来禁用 启用页面保护 到目前为止一切顺利 一旦完成 我将公开整个代码 因此如果有人愿意 我可以更新这个问题 无论如何
  • 在 Mac OS X 上构建 Linux 内核

    我正在做一个修改Linux内核的项目 我有一台桌面 Linux 机器 在上面构建内核没有问题 不过 我要去旅行 我想在途中工作 我只有一台 MacBook 当我尝试构建 Linux 内核时 它抱怨说elf h was not found 我
  • 加速 C# 中的矩阵加法

    我想优化这段代码 public void PopulatePixelValueMatrices GenericImage image int Width int Height for int x 0 x lt Width x for int
  • 如何在 C++ BOOST 中像图形一样加载 TIFF 图像

    我想要加载一个 tiff 图像 带有带有浮点值的像素的 GEOTIFF 例如 boost C 中的图形 我是 C 的新手 我的目标是使用从源 A 到目标 B 的双向 Dijkstra 来获得更高的性能 Boost GIL load tiif
  • Linux 内核标识符中前导和尾随下划线的含义是什么?

    我不断遇到一些小约定 比如 KERNEL Are the 在这种情况下 是内核开发人员使用的命名约定 还是以这种方式命名宏的语法特定原因 整个代码中有很多这样的例子 例如 某些函数和变量以 甚至 这有什么具体原因吗 它似乎被广泛使用 我只需
  • 使用sk_buff添加以太网帧头

    我有一个捕获传出互联网流量的内核模块 Netfilter hook LOCAL OUT 在此挂钩处 仍然没有以太网标头 我构建了以太网头并且可以使用了 但是如何将其连接到skb这样我就可以将整个 skb 结构发送到dev queue xmi
  • 有谁知道在哪里定义硬件、版本和序列号。 /proc/cpuinfo 的字段?

    我想确保我的 proc cpuinfo 是准确的 目前它输出 Hardware am335xevm Revision 0000 Serial 0000000000000000 我可以在代码中的哪里更改它以给出实际值 这取决于 Linux 的
  • 模块参数权限

    我是内核编程的新手 当我正在经历module param 我对权限值 0 感到困惑 有人解释说它不会在 sysfs 中获得条目 而其他人则喜欢S IRUGO将获得一个条目 我无法理解这个概念 perm 值 0 表示什么 我们什么时候需要 s
  • 安卓的限制

    我需要构建一个应用程序 该应用程序拍摄相机图像并将其上传到网络 在网络上进行一些处理并返回真 假 我在这方面遇到了一些问题 希望得到澄清 1 我的应用程序有什么方法可以知道 Android 相机捕获的图像吗 我从这里明白了什么 Androi
  • 探索java图像处理的好资源[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我是图像处理领域的新手 请推荐一些好的资源 书籍和网络链接 来学习 Java 中的图像处理 最适合隐写术分析 适合初学者和高级水平 我看过
  • 为什么这段代码会死锁?

    我在可加载模块中创建了 2 个 Linux 内核线程 并将它们绑定到在双核 Android 设备上运行的单独 CPU 内核 运行几次后 我注意到设备重新启动并重置了硬件看门狗定时器 我一直在解决这个问题 什么可能导致僵局 基本上 我需要做的
  • 如何编译一个简单的 multiboot2 裸机可执行文件?

    我想开始写一个操作系统内核 然后 我找到了一个document http nongnu askapache com grub phcoder multiboot pdf引入 multiboot2 规范 有三个示例代码文件 名为boot S
  • 如何在Matlab中将图像从笛卡尔坐标更改为极坐标?

    我正在尝试将图像的像素从 x y 坐标转换为极坐标 但我遇到了问题 因为我想自己编写该函数 这是我到目前为止所做的代码 function newImage PolarCartRot read and show the image image
  • Matlab下降低图像质量

    问候 我正在尝试找到一种简单的方法来处理图像 以便将其质量从 8 位降低到 3 位 实现这一目标的最简单方法是什么 干杯 如果要线性缩放 只需将每个像素值除以 255 7 即 如果原始图像存储在矩阵 I 中 则让低分辨率图像 J I 255
  • 如何使用PHP在服务器端缩小图像?

    我有一些从服务器提取的图像 imgUrl保存图像的路径 现在我用 img src width 100 height 200 或 CSS 来缩小图像 但我想在 PHP 中执行此操作 以便将已缩放的图像提供给 DOM 有任何想法吗 Thanks
  • 在 opencv 中一次性将旋转和平移结合起来

    我有一段用于旋转和平移图像的代码 Point2f pt 0 in rows double angle atan trans c trans b 180 M PI Mat r getRotationMatrix2D pt angle 1 0
  • 点击界面没有出现

    我决定添加一个点击界面并在我的代码中使用它 但我能够得到它的状态 sudo ip f link tuntap add tap10 mode tap sudo ip link set tap10 up 之后当我执行 ip link 时 tap
  • 如何在 MATLAB 的 for 循环中读取多个图像?

    我已将结果分段放在一个文件夹中 这些需要在 for 循环中读取并在循环中进一步处理 我尝试阅读如下 for i 1 10 file name dir strcat C Users adminp Desktop dinosaurs im im
  • 如何将十六进制数组转换为 UIImage?

    有几个与使用 P25mi 动态打印图像相关的未解答问题 没有一个得到公认的答案 下面有几个链接 如何将图像转换为位图代码以便在 iPhone 中进行蓝牙打印 https stackoverflow com questions 1383828

随机推荐

  • 触发对同一个表的 UPDATE 和 SELECT - 错误 1235 (42000)

    我正在尝试实施具有多个递增列的表 不会重用已删除的列值 这篇文章被标记为已经被回答MYSQL表的子集内如何自动递增但是 引用的帖子不符合规定的要求 因为它允许子集增量键被复制 在第一篇文章中 给出了评论 创建一个表来存储每种类型的最后 AI
  • 如何创建带有图标的 C++ 按钮

    我正在尝试制作一个自定义退出按钮 并且我已经在 Photoshop 中为该按钮创建了一个自定义图形 我有此代码定义的按钮 button CreateWindow L BUTTON L WS VISIBLE WS CHILDWINDOW 40
  • iOS 使用 UIActivityViewController 将 GIF 分享到 Messenger

    我正在尝试使用共享不同类型的图像UIActivityViewController到 Facebook Messenger 我在共享图像 png 时没有遇到任何问题 但我无法发送 gif 图像 gif 它给出错误 无法加载内容 我将图像转换为
  • 在 C# 中解析用引号引起来的 CSV 文件

    我见过很多解析 CSV 文件的示例 但这是一种烦人的文件 那么如何解析这种 CSV 1 1 2 2010 样本 adasdad asdada 我在门上大便 臭 所以我该死 AK 在大多数情况下 最好的答案可能是 Jim Mischel 的
  • 如何比较两个列表中的项目 Python 3.3

    我尝试使用cmp list1 list2 了解 Python 3 3 不再支持它 我尝试过许多其他复杂的方法 但没有一个有效 我有两个列表 其中都只包含单词 我希望它检查两个列表中有多少单词 并返回有多少单词 您可以使用以下方法找到集合交集
  • SVN 提交期间互联网连接断开

    在对远程 SVN 存储库进行大量提交期间 如果互联网连接断开 我是否必须再次开始提交 或者它会从中断的地方 继续 吗 Thanks Ojo Subversion 提交是一个原子事务 要么一切都承诺 要么什么都不承诺 您必须再次开始提交
  • 将局部变量设置为函数而不是使用全局变量来优化函数

    在 itertools 模块的文档中我发现了这个评论 def dotproduct vec1 vec2 return sum imap operator mul vec1 vec2 请注意 上述许多配方可以通过替换全局来优化 使用定义为默认
  • 确定 MPMovies 控制器比特率

    有没有办法确定 MPMovieController 正在播放的流的比特率 我正在 iOS 上使用 Objective C 进行编程 可以从event中获取指示的码率 这是按照m3u8的码流的码率 为了计算实际比特率 我将 event num
  • 使用 Javascript 从浏览器截屏?

    我想这是一个奇怪的问题 答案很可能是不可能的 因为这代表着安全漏洞 但我正在寻找一种方法 如果有的话 来获取浏览器内内容的屏幕转储 我不需要整个窗口 但实际上只需要转储标签的渲染状态 它需要跨平台和跨浏览器兼容 这还不能在纯 JavaScr
  • 在 iis 6 和 asp.net mvc 3 中找不到默认角色提供程序

    我正在 ii6 上启动 asp net mvc 3 应用程序 不使用成员资格或角色提供者 我通过手动创建授权cookie来实现授权 并在global asax中处理它 首先 出现了这个错误 创建 App Data 子目录时访问被拒绝 描述
  • ASP.NET 请求是否始终在同一线程上开始请求和结束请求?

    对于来自客户端的给定 HTTP 请求 ASP NET HttpApplication 的 BeginRequest 和 EndRequest 是否始终发生在完全相同的线程上 我问的原因是我看到一些非常奇怪的行为 其中 ThreadStati
  • MongoDB:如何正确地将集合从 MongoDB 导出到我的计算机?

    给定以下数据库和相关集合scows tasks 如何导出 2GB 用于存储目的以腾出空间 我一直在尝试使用各种方法来做到这一点 但没有一个奏效 mongoexport verbose db scows collection tasks ou
  • python readthedocs如何满足sip(或pyqt)的要求

    我想发布我的项目的文档https bitbucket org oaltun opn在 readthedocs org 中 构建失败 日志中显示不同的错误https readthedocs org builds opn 2247789 但第一
  • 如何旋转TextView?

    我想旋转 TextView 但无法获得正确的输出 我正进入 状态textView缺少一些文字 布局中
  • 将 IO 寄存器作为模板参数传递

    我想使用 IO 寄存器 静态内存地址 作为模板参数 问题是 寄存器通常被定义为扩展为类似于以下内容的宏 volatile uint8 t 11 0x20 我不知何故无法正确使用我的模板 我想编写如下代码 Foo
  • Blob downloadToFile() 不下载大文件 Nodejs

    我在我的项目中实现了 azure blob storage 它在较小的文件上运行良好 但当我尝试下载超过 40 MB 的文件时 它不会从 blob downlaodToFile 返回 这是我的代码 Api call exports down
  • 使用 Apache poi 使​​用 java 从 Excel 获取数据

    我需要通过传递测试用例 ID 从 Excel 中获取测试数据 如果我将测试用例 ID 作为 TC005 传递 我需要获取所有列值 例如实验室名称 实验室地址 城市 州 Pincode 收集中心名称 CC 地址 城市 州和 Pincode 谁
  • 无法设置gdb断点

    我使用多个 C 文件编写程序 我已通过 gdb 运行可执行文件来调试分段错误 之后 gdb backtrace提供了分段错误之前的函数列表 后来 我尝试在文件中的特定行号上设置断点 指定的路径为绝对路径 gdb break aia r015
  • 通过 VBScript 访问文件夹时传递用户名/密码

    我有一个脚本 旨在从服务器上的用户旧配置文件中检索一些文件并将其复制到新配置文件中 但用户在通过服务器连接时没有相关文件夹 文件的访问权限 有没有一种方法可以通过以下函数传递用户名 密码 谢谢 objFSO FolderExists fol
  • 图像处理中的高阶拉普​​拉斯核

    在数字图像处理的文献中 您可以找到相对低阶的拉普拉斯核的示例 通常为 3 或 5 我想知道 是否有任何通用方法来构建拉普拉斯核或任意阶 链接或 和参考文献将不胜感激 The 拉普拉斯算子定义为沿图像每个轴的二阶导数之和 即是Hessian矩