算子 get_contour_attrib_xld - 返回 XLD 轮廓的点属性值

news/2025/3/10 14:47:36/文章来源:https://www.cnblogs.com/Honsen/p/18759847

算子 get_contour_attrib_xld

名称

get_contour_attrib_xld — 返回 XLD 轮廓的点属性值。

签名

get_contour_attrib_xld(Contour : : Name : Attrib)

描述

get_contour_attrib_xld 算子将 XLD 轮廓 Contour 中属性 Name 的值返回到 Attrib 中。轮廓点属性是为每个轮廓点定义的附加值,用于描述局部特征。可以使用 query_contour_attribs_xld 算子查询特定轮廓设置了哪些属性。

以下列表包含了关于不同轮廓点属性的信息,以及将这些属性添加到 XLD 轮廓的算子(特殊情况请参阅相应的算子参考文档):

  • 'angle':轮廓法向量的方向由 'angle'(单位:弧度)描述(见下图)。当从轮廓的起点到终点遍历轮廓时,法向量指向轮廓的右侧(角度是相对于图像的行轴按逆时针方向定义的)。 添加 'angle' 属性的算子如下:edges_color_sub_pixedges_sub_pixlines_colorlines_facetlines_gauss

  • 'response''response' 包含边缘梯度的幅值(见下图)。 添加 'response' 属性的算子如下:edges_color_sub_pixedges_sub_pixlines_colorlines_facetlines_gauss

  • 'width_right':线条右侧的线宽(当从起点到终点遍历轮廓时)由 'width_right'(单位:像素)描述(见下图)。 添加 'width_right' 属性的算子如下:lines_colorlines_gauss

  • 'width_left':线条左侧的线宽(当从起点到终点遍历轮廓时)由 'width_left'(单位:像素)描述(见下图)。 添加 'width_left' 属性的算子如下:lines_colorlines_gauss

image-20250306205328572 轮廓(红色)不同点属性的可视化。轮廓的起点用白色十字标记。(1) 向量(黄色),按照 'angle' 绘制(相对于行轴),表示轮廓每个点的法向量;(2) 沿轮廓的 'response' 属性的变化情况;(3) 计算得到的属性 'width_right'(黄色)和 'width_left'(绿色)的可视化。

  • 'edge_direction':给出边缘的方向(不是 XLD 轮廓的方向),通过图像在行和列方向上的梯度计算得到。角度是相对于图像的列轴给出的。 添加 'edge_direction'(单位:弧度)属性的算子如下:edges_color_sub_pixedges_sub_pix

    image-20250306205510196

    为轮廓(红色)的每个点按 'edge_direction' 绘制的向量(黄色)。

  • 'asymmetry':轮廓属性 'asymmetry' 描述了边缘两侧的图像梯度。如果不对称部分,即梯度较弱的部分,在线条的右侧,则该属性为正;如果不对称部分在线条的左侧,则该属性为负(见下图)。 添加 'asymmetry' 属性的算子如下:lines_gauss

  • 'contrast':轮廓的对比度描述了线条的灰度值与局部背景灰度值之间的差异。如果提取的是亮线条,则该属性为正;如果是暗线条,则该属性为负(见下图)。 添加 'contrast' 属性的算子如下:lines_gauss

image-20250306205618478 沿图像结构的轮廓的属性 (1) 'asymmetry' 和 (2) 'contrast' 的变化情况(轮廓的起点用白色十字标记)。

  • 'distance':对于一个轮廓的所有点,到参考轮廓的任意点或线段的最小距离(取决于计算时选择的模式)由属性 'distance'(单位:像素)给出。 添加 'distance' 属性的算子如下:apply_distance_transform_xlddistance_contours_xld

image-20250306205836252 (1) 轮廓(红色)到参考轮廓(绿色)的点的 'distance';(2) 到参考轮廓(绿色)的任意线段的 'distance'

有关全局轮廓属性的信息,请参阅 get_contour_global_attrib_xld 算子的参考文档。

参数
  • Contour(输入对象)

    • 类型:XLD 轮廓对象

    • 描述:待查询属性的输入轮廓。

  • Name(输入控制)

    • 类型:字符串

    • 默认值'angle'

    • 可选值:

      属性名 含义 生成该属性的算子
      'angle' 轮廓法线方向角度(弧度,相对于图像行轴,逆时针方向) edges_sub_pix, lines_gauss
      'response' 边缘梯度幅值(边缘强度) edges_sub_pix, lines_gauss
      'width_right' 轮廓右侧线宽(像素,沿轮廓起点到终点方向右侧) lines_gauss, lines_color
      'width_left' 轮廓左侧线宽(像素,沿轮廓起点到终点方向左侧) lines_gauss, lines_color
      'edge_direction' 边缘方向(弧度,相对于图像列轴,由图像梯度计算) edges_sub_pix
      'asymmetry' 边缘不对称性(正值表示弱梯度在右侧,负值在左侧) lines_gauss
      'contrast' 对比度(正值表示亮线,负值表示暗线) lines_gauss
      'distance' 到参考轮廓的最小距离(像素,需通过 distance_contours_xld 预先计算) distance_contours_xld, apply_distance_transform_xld
  • Attrib(输出控制)

    • 类型:实数数组

    • 描述:轮廓每个点对应的属性值,长度与轮廓点数相同。

可能的前置算子

lines_gausslines_facetedges_sub_pixdistance_contours_xldapply_distance_transform_xld

相关算子

query_contour_attribs_xldget_contour_global_attrib_xldquery_contour_global_attribs_xld

HDevelop 例程
  • measure_circuit_width_lines_gauss.hdev:测量印刷电路板(PCB)线路的宽度。

  • lines_gauss.hdev:提取线条及其宽度。

  • lines_color.hdev:使用颜色信息提取线条。

  • inspect_frame_width.hdev:通过计算两个 XLD 轮廓之间的逐点距离来检查手机相机边框的宽度。

  • apply_distance_transform_xld.hdev:比较 apply_distance_transformdistance_contours_xld 的运行时间。

  • angio.hdev:从血管造影图像中提取血管及其直径。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

川大网安挑战赛游记

会赢吗部分在手机上完成,格式可能有误,见谅。前:可能是最后的比赛了,还是记一下吧Day -1 下午三点半就走了,吃了汉堡王上火车,路上看网课,听歌。 到家快十点了,最终后半夜前睡了。 Day 0 早起,7:30 的飞机。发现手机没电了,不过还是顽强的让我听了一路的歌。 酒店严格…

win11开启22端口ssh服务器

步骤按win,输入可选功能条读完后,搜索service找到ssh然后进行设置,或者也可以使用命令。启动后端口就打开了。 配置默认shell 按win,搜索regedit,打开注册表编辑器。 导航到以下路径: HKEY_LOCAL_MACHINE\SOFTWARE\OpenSSH 在右侧窗口中,找到或创建一个名为 DefaultShel…

Python+Django网上招聘系统的设计与实现

平台采用B/S结构,后端采用主流的Python语言进行开发,前端采用主流的Vue.js进行开发。 整个平台包括前台和后台两个部分。 - 前台功能包括:首页、岗位详情页、简历中心、用户设置模块。 - 后台功能包括:总览、岗位管理、公司管理、分类管理、标签管理、评论管理、用户管理、…

elasticseach-分页搜索

背景 使用es通过常规分页来做导出是遇到不能超过from不能跳过1万的问题。结合这个问题契机深入了解一下es的分页。 入参{"from":10601,"size": 5}响应{"error": {"root_cause": [{"type": "illegal_argument_exception…

牛客 周赛83 20250304

牛客 周赛83 20250304 https://ac.nowcoder.com/acm/contest/102896 A: 题目大意:给定字符,不同输出 #include<bits/stdc++.h> #define cintie ios::sync_with_stdio(false);cin.tie(0);cout.tie(0); #define Trd int T;cin>>T;while (T--)solve(); #define LLi…

3.2 练习

在使用torch.autograd.grad计算二阶导数时,可以仅设置create_graph=True而无需设置retain_graph=True。以下是关键点总结:create_graph的作用: 当设置为True时,会保留梯度计算图,使得后续能对梯度再次求导(如计算二阶导数)。这是高阶导数计算的关键参数。retain_graph的…

6、seq2seq - Transformer-Encoder、Transformer-Decoder

Attention - 注意力机制seq2seq是 Sequence to Sequence 的简写,seq2seq模型的核心就是编码器(Encoder)和解码器(Decoder)组成的通过在seq2seq结构中加入Attention机制,是seq2seq的性能大大提升,先在seq2seq被广泛的用于机器翻译、对话生成、人体姿态序列生成等各种任务…

作业-个人项目编程

作业gitHub 作业链接这个作业属于哪个课程 软件工程这个作业要求在哪里 作业要求这个作业的目标 完成一次个人项目计算模块接口的设计与实现过程1. 代码组织 计算模块的核心功能是读取文件内容并计算两个文本的相似度。代码组织如下: 模块划分文件读取模块:函数:readFile。 …

mybatis-plus02--Lesson2

CRUD和myBatis-plus插件 1.Insert方法和雪花算法 当一个数据表中的id为主键时,且插入的数据的时候不插入主键id,那么会发生什么呢?接下来就进行一次简单测试,还是那个User表,插入其它属性,不插入主键id。 测试方法:@Testpublic void testInsert(){User user = new User(…

免费好用的云服务器提供商

最近倒腾云服务器,想在阿里云上购买,结果发现价格太高,是在买不起。我只好在百度上翻呀翻,终于找到一个免费的,实名一下就能用。链接我贴这儿了,要用请自取:免费好用的云服务器提供商

2020-PTA总决赛-L3-1 那就别担心了(记忆化搜索)

dfs,记忆化搜索思路:读懂题到28分花了十分钟左右,做的时候就感觉可能要超时,因为结点稍微有点多 但是还是继续硬着头皮写下去了,果不其然,最后一个测试点超时,那么就要开dp数组了 题目大意就是找到A到B有几条路径,且是否走哪条路都能通向B28分Code: #include<bits/st…

集合论3 公理化—从罗素悖论到集合的公理化定义

集合论3 公理化—从罗素悖论到集合的公理化定义 罗素悖论 若把所有集合分为两类:第一类中的集合以其自身为元素,第二类中的集合不以自身为元素。 设第一类集合所组成的集合为\(P\),第二类所组成的集合为\(Q\)。于是有: \(P=\{A |A \in A\}\), \(Q=\{A |A \notin A\}\)。 试…