Halcon edges_sub_pix

1、算子帮助文档

        edges_sub_pix 使用递归实现的滤波器(根据Deriche、Lanser和Shen的方法)或Canny提出的常规实现的“高斯导数”滤波器(使用滤波器掩模)来检测阶梯边缘。因此,以下边缘算子可用于滤波器:

        'deriche1', 'lanser1', 'deriche2', 'lanser2', 'shen', 'mshen', 'canny', 'sobel' 和 'sobel_fast'。

        提取的边缘作为亚像素精确的XLD轮廓在Edges中返回。对于除'sobel_fast'之外的所有边缘算子,为每个边缘点定义了以下属性(有关更多详细信息,请参阅get_contour_attrib_xld):

'edge_direction':
给出边缘的方向(而非XLD轮廓的方向),根据图像在水平和垂直方向上的梯度计算得出。角度[弧度]是相对于图像的列轴给出的。

'angle':
轮廓法向量的方向,以弧度表示(法向量指向轮廓的右侧,当从起点到终点遍历轮廓时;角度是相对于图像的行轴给出的)。

'response':
边缘幅度(梯度大小)。

        对于除'sobel'和'sobel_fast'之外的所有边缘算子,可以任意选择“滤波器宽度”(即平滑量),并且可以通过调用info_edges来估计Alpha参数的具体值。对于所有滤波器(Deriche、Lanser和Shen滤波器),Alpha增加时“滤波器宽度”减小。唯一的例外是Canny滤波器,其中Alpha增加也会导致“滤波器宽度”增加。“宽”滤波器对噪声具有更大的不变性,但检测小细节的能力降低。非递归滤波器,如Canny滤波器,是使用滤波器掩模实现的,因此执行时间随着滤波器宽度的增加而增加。相比之下,递归滤波器的执行时间不依赖于滤波器宽度。因此,使用Deriche、Lanser和Shen滤波器可以实现任意滤波器宽度,而不会增加运算符的运行时间。与Canny运算符相比,这在速度上的优势对于较大的滤波器宽度自然会增加。作为边界处理,递归运算符假设图像在图像外部为零,而Canny运算符则重复图像边界上的灰度值。对于以下Alpha选择,滤波器的信噪比是可比较的:

Alpha('lanser1') = Alpha('deriche1'),
Alpha('deriche2') = Alpha('deriche1') / 2,
Alpha('lanser2') = Alpha('deriche2'),
Alpha('shen') = Alpha('deriche1') / 2,
Alpha('mshen') = Alpha('shen'),
Alpha('canny') = 1.77 / Alpha('deriche1').

        最初提出的递归滤波器('deriche1', 'deriche2', 'shen')返回的对角边缘幅度估计存在偏差。在相应的修改版运算符('lanser1', 'lanser2' 和 'mshen')中,这种偏差被消除,同时保持了相同的执行速度。

        对于相对较小的滤波器宽度(11 x 11),即Alpha('lanser2' = 0.5)时,所有滤波器都会产生相似的结果。只有当滤波器“更宽”时,差异才开始出现:Shen滤波器开始产生质量较低的结果。然而,它们是支持任意掩模大小的实现运算符中最快的,紧随其后的是Deriche运算符。使用固定掩模大小(3 x 3)的两个Sobel滤波器比其他滤波器更快。其中,'sobel_fast'滤波器比'sobel'快得多。

  edges_sub_pix 通过使用类似于滞后阈值操作的算法将边缘点连接成边缘,该算法也在lines_gauss中使用。幅度大于High的点立即被接受为属于边缘,而幅度小于Low的点则被拒绝。所有其他点如果与已接受的边缘点相连,则被视为边缘(另请参见lines_gauss和hysteresis_threshold)。

        由于边缘提取器通常无法提取某些连接点,因此可以通过在上述Filter值后附加'_junctions'来选择一种通过不同方式提取这些缺失连接点的模式。这种模式类似于lines_gauss中可用的完成连接点的模式。

        'sobel_fast'边缘算子与其他所有边缘算子具有相同的语义。然而,在内部,它基于各个处理步骤的显著简化变体(滞后阈值化、边缘点连接和亚像素边缘位置的提取)。因此,'sobel_fast'在某些情况下可能会返回略微不太准确的边缘位置,并且可能会选择不同的边缘部分。

   edges_sub_pix 可以在OpenCL设备上为'canny'和'sobel_fast'滤波器类型执行。这将需要多达widthheight29字节的固定内存。由于分配内存是一个昂贵的操作,因此将固定内存缓存设置为至少此大小是有意义的(使用set_compute_device_param为参数'pinned_mem_cache_capacity'设置),或者完全禁用固定内存(使用set_compute_device_param为参数'alloc_pinned'设置),在这种情况下,将使用正常的内存缓存。请注意,结果可能与CPU实现有所不同。

2、算子原型

edges_sub_pix(Image : Edges, Filter, Alpha, Low, High : )

各参数的含义如下:

  1. Image:输入的单通道灰度图像。
  2. Edges:输出的XLD轮廓。
  3. Filter:选择的滤波算子,用于边缘检测。默认是Canny,可选的有Canny、Deriche、Deriche Int4、Deriche2、Deriche2 Int4、Lanser1、Lanser2、MShen、Shen、Sobel_fast等。不同的滤波器对噪声的敏感度和计算效率有所不同。
  4. Alpha:平滑的程度。其值越小,表示平滑的程度越大。默认是0,可以取0.1到1.1之间的值。平滑有助于减少噪声对边缘检测的影响,但过多的平滑可能导致边缘细节的丢失。
  5. Low:滞后阈值的低阈值。低阈值越低,图像的细节会越丰富。低于此阈值的像素被认为不是边缘。
  6. High:滞后阈值的高阈值。高于此阈值的像素被认为是强边缘,这些边缘通常是连续的。在高阈值和低阈值之间的像素被认为是弱边缘,它们的边缘状态取决于其相邻像素。

3、使用技巧

选择合适的滤波器

        根据图像的特点和噪声情况选择合适的滤波器。例如,如果图像质量较好且噪声较小,可以选择速度较快的'sobel_fast'滤波器。但如果对边缘的精度要求较高,则建议选择'canny'或'lanser2'等更复杂的滤波器。

调整平滑参数

        通过调整Alpha参数来控制平滑的程度。平滑可以减少噪声对边缘检测的影响,但过度的平滑也可能导致边缘细节的丢失。因此,需要根据实际情况进行权衡。

设置合理的滞后阈值

        低阈值Low和高阈值High的设置对边缘检测的结果有很大影响。低阈值越低,图像中的细节会越丰富;而高阈值则用于区分边缘与背景。在实际应用中,可以通过尝试不同的阈值组合来找到最佳的设置。

预处理和后处理

        在进行边缘检测之前,可以对图像进行预处理,如高斯滤波或二值化等,以减少噪声或突出边缘特征。在边缘检测之后,还可以进行后处理操作,如轮廓分割、合并或拟合等,以得到更精确的边缘轮廓。

利用图像掩膜

        如果只对图像的特定区域感兴趣,可以使用图像掩膜来限制边缘检测的范围。这不仅可以提高边缘检测的准确性,还可以缩短算法的执行时间。

4、参数设置参考

其中的固定值按需修改,使用尽量多测试

High := 6 + 20 * (1 - Sensitivity)
Low := 3 + 10 * (1 - Sensitivity)
if(BrightLineSensitivity >= 0.75)
        Alpha := 1.1
elseif(Sensitivity >= 0.4 and Sensitivity < 0.75)
    Alpha := 0.5
else
    Alpha := 0.2
endif
edges_sub_pix (ImageScaled, Edges, 'canny', Alpha, Low, High)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/909767.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

SpringBoot配置Rabbit中的MessageConverter对象

SpringAMQP默认使用SimpleMessageConverter组件对消息内容进行转换 SimpleMessageConverter&#xff1a; only supports String, byte[] and Serializable payloads仅仅支持String、Byte[]和Serializable对象Jackson2JsonMessageConverter&#xff1a;was expecting (JSON Str…

计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-30

计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-30 目录 文章目录 计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-10-30目录1. Step Guided Reasoning: Improving Mathematical Reasoning using Guidance Generation and Step Reasoning摘要研究背…

LabVIEW在Windows和Linux开发的差异

LabVIEW广泛应用于工程和科研领域的自动化和测量控制系统开发&#xff0c;其在Windows和Linux平台上的开发环境有所不同。这些差异主要体现在操作系统兼容性、硬件支持、软件库和驱动程序、实时系统开发以及部署选择上。以下从各个方面详细对比分析LabVIEW在Windows与Linux系统…

大模型日报|7 篇必读的大模型论文

大家好&#xff0c;今日必读的大模型论文来啦&#xff01; 1.加州大学团队推出“罕见病”大模型 Zebra-Llama 罕见病为医疗保健带来了独特的挑战&#xff0c;通常会出现诊断延迟和信息分散的情况。这些疾病的可靠知识稀缺&#xff0c;给大语言模型&#xff08;LLM&#xff09…

Docker篇(基础命令)

目录 一、启动与停止 二、镜像相关的命令 1. 查看镜像 2. 搜索镜像 3. 拉取镜像 4. 删除镜像 三、容器创建与启动容器 1. 查看容器 2. 创建容器 交互式方式创建容器 守护式方式创建容器 3. 容器启动与停止 四、容器操作命令 1. 文件拷贝 2. 目录&#xff08;文件…

网络安全认证的证书有哪些?

在网络安全领域&#xff0c;专业认证不仅是个人技术能力的象征&#xff0c;也是职业发展的重要推动力。随着网络安全威胁的日益严峻&#xff0c;对网络安全专业人才的需求也在不断增长。本文将介绍一些网络安全认证的证书&#xff0c;帮助有志于从事网络安全行业的人士了解并选…

论文阅读笔记:Image Processing GNN: Breaking Rigidity in Super-Resolution

论文阅读笔记&#xff1a;Image Processing GNN: Breaking Rigidity in Super-Resolution 1 背景2 创新点3 方法4 模块4.1 以往SR模型的刚性4.2 图构建4.2.1 度灵活性4.2.2 像素节点灵活性4.2.3 空间灵活性 4.3 图聚合4.4 多尺度图聚合模块MGB4.5 图聚合层GAL 5 效果5.1 和SOTA…

tomato靶机

下载tomato地址:https://vulnhub.com/entry/tomato-1,557/ 直接拖进虚拟机中 tomato靶机和kali虚拟机必须在同一网段所以使用nat模式 扫描主机 arp-scan -I eth0 -l 发现新主机ip 192.168.142.147 nmap扫描端口 namp -p- -A -T4 --min-rate10000 192.168.142.147 有用的信息…

集成旺店通旗舰版售后单至MySQL数据库

旺店通旗舰版-售后单集成到MySQL的技术实现 在数据驱动的业务环境中&#xff0c;如何高效、准确地将旺店通旗舰奇门的数据集成到MySQL数据库&#xff0c;是许多企业面临的重要挑战。本文将分享一个具体的系统对接案例&#xff1a;旺店通旗舰版-售后单-->BI泰海-售后订单表(…

随着FAB的发布,在FAB中使用Megascans的简单方法(适用于Unreal Engine 5)

UE5系列文章目录 文章目录 UE5系列文章目录前言一、如何在2024年12月31之前免费获取Quixel Megascans所有资源 前言 随着FAB的发布,Quixel Megascans的资源在2024年12月31号之后将不再免费&#xff0c;一个资源1美元 Fab是Epic Games推出的一个全新的数字内容平台&#xff0c;…

论文阅读:Computational Long Exposure Mobile Photography (二)

这篇文章是谷歌发表在 2023 ACM transaction on Graphic 上的一篇文章&#xff0c;介绍如何在手机摄影中实现长曝光的一些拍摄效果。 Abstract 长曝光摄影能拍出令人惊叹的影像&#xff0c;用运动模糊来呈现场景中的移动元素。它通常有两种模式&#xff0c;分别产生前景模糊或…

Linux云计算 |【第五阶段】PROJECT3-DAY1

主要内容&#xff1a; 跳板机&#xff08;堡垒机&#xff09;的概念、部署JumpeServer 一、跳板机&#xff08;堡垒机&#xff09;的概念 跳板机&#xff08;Jump Server 或 Bastion Host&#xff09;是一种网络安全设备或服务器&#xff0c;也称堡垒机&#xff0c;是一类可作…

一款根据图片内的文字,把图片分类的软件

这里写自定义目录标题 欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题&#xff0c;有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants 创建一个自定义列表如何创建一个…

文件操作:Xml转Excel

1 添加依赖 Spire.Xls.jar <dependency><groupId>e-iceblue</groupId><artifactId>spire.xls</artifactId><version>5.3.3</version></dependency>2 代码使用 package cctd.controller;import com.spire.xls.FileFormat; im…

从底层技术到实际应用:Claude与ChatGPT谁更适合学术写作?

学境思源&#xff0c;一键生成论文初稿&#xff1a; AcademicIdeas - 学境思源AI论文写作 使用大模型智能AI进行学术写作和科研已经成为学者、研究人员和高校学生的强大助手。Anthropic的Claude和OpenAI的ChatGPT作为该领域的两个主要参与者&#xff0c;正在不断发展和完善。随…

linux 磁盘配额 quota

增加一个facl的的知识点&#xff1a; linux中默认的文件系统支持facl&#xff0c;如果是新挂载的分区&#xff0c;则不支持facl应用。需要在挂载文件系统时使用-o acl选项来启用facl支持。如下图显示 在/etc/fstab添加defaults,acl 1.启用磁盘配额功能&#xff1a;修改/etc/f…

qt QMessageBox详解

1、概述 QMessageBox是Qt库中的一个类&#xff0c;它用于在图形用户界面&#xff08;GUI&#xff09;程序中显示消息框。消息框是一种用于向用户显示信息、警告、错误或询问用户确认的对话框。QMessageBox可以显示文本、图标和按钮&#xff0c;并允许自定义按钮的文本和功能。…

qt QResizeEvent详解

1、概述 QResizeEvent是Qt框架中用于处理窗口或控件大小变化事件的一个类。当用户调整窗口或控件的尺寸时&#xff0c;Qt会生成一个QResizeEvent事件&#xff0c;并将其发送到相应的窗口或控件。开发者可以通过重载窗口或控件的resizeEvent()方法来响应这个事件&#xff0c;并…

黑科技安利 | 超好用的背景去除软件

背景 如果一幅主图里存在其它颜色的背景色调&#xff0c;希望变成白色或者特定色彩/背景图片 推荐 1. Microsoft PowerPoint里自带的“清除背景”/设置透明色 这个功能超级好用&#xff0c;基本满足我日常涉及的90%的清除白色背景的需求 2. https://www.remove.bg/ 这个网…

PyCharm中pylint安装与使用

目录 1. 安装插件2. pycharm中使用该功能3. 命令行使用 1. 安装插件 然后重启 2. pycharm中使用该功能 3. 命令行使用 前提是先 pip install pylint pylint demo01.py下面红框内容的意思是&#xff0c;得到10分/ 满分10分&#xff0c;上次运行获得8.33分&#xff0c;经调整…