halcon脚本-边缘及骨架的识别【附源码】

news/2024/5/14 15:00:04/文章来源:https://blog.csdn.net/ctu_sue/article/details/127440279

文章目录

  • 前言
  • 一、原图
    • 1.边缘图
    • 2.骨架图
  • 二、实现思路
    • 1.边缘图
    • 2.骨架图
  • 三、halcon脚本实现
    • 1.边缘图
    • 2.骨架图
  • 四、实现效果
    • 1.边缘图
    • 2.骨架图


前言

本文实现基于图像进行边缘或者骨架的识别,可实现让机器人画画


一、原图

1.边缘图

在这里插入图片描述

2.骨架图

在这里插入图片描述


二、实现思路

1.边缘图

  • 提取边缘算子,edges_sub_pix
  • 二值化获取区域
  • 根据xld区域获取点

2.骨架图

  • 首先对图像进行二值化,区域筛选出需要的位置
  • 使用skeleton算子把区域变成了线条
  • 使用gen_contours_skeleton_xld算子把整个区域线条变成话比xld
  • 使用get_polygon_xld获取坐标

三、halcon脚本实现

1.边缘图

read_image (image, '1.jpg')   //读取图像
edges_sub_pix (image, Edges, 'canny', 1, 5, 40)
binary_threshold (image, Region, 'max_separability', 'dark', UsedThreshold)
gen_contour_region_xld (Region, Contours, 'border_holes')
gen_region_contour_xld(Contours,a,'margin')
union_cotangential_contours_xld (Contours, UnionContours1, 0, 30, 0.785398, 25, 10, 2, 'attr_forget')
count_obj (UnionContours1, Number1)
union_adjacent_contours_xld (Contours, UnionContours2, 10, 1, 'attr_keep')
count_obj (UnionContours2, Number2)
sort_contours_xld (Contours, SortedContours, 'upper_left', 'true', 'column')
count_obj (SortedContours, Number)
for Index := 1 to Number by 1select_obj (SortedContours, ObjectSelected, Index)*gen_region_contour_xld (ObjectSelected, Region1, 'filled')*get_region_points (Region1, Rows, Columns)gen_polygons_xld (ObjectSelected, Polygons, 'ramer', 1)get_polygon_xld (Polygons, Row, Col, Length, Phi)*stop ()
endfor

2.骨架图

read_image (Writing, '1.png')
binary_threshold (Writing, Region, 'max_separability', 'dark', UsedThreshold)
select_shape (Region, SelectedRegions, 'area', 'and', 20, 99999999)
skeleton (SelectedRegions, Skeleton)
gen_contours_skeleton_xld (Skeleton, Contours, 1, 'filter')
union_cotangential_contours_xld (Contours, UnionContours1, 0, 30, 0.785398, 25, 10, 2, 'attr_forget')
count_obj (UnionContours1, Number1)
union_adjacent_contours_xld (Contours, UnionContours2, 10, 1, 'attr_keep')
count_obj (UnionContours2, Number2)
sort_contours_xld (Contours, SortedContours, 'upper_left', 'true', 'column')
dev_clear_window ()
count_obj (SortedContours, Number)
for Index := 1 to Number by 1select_obj (SortedContours, ObjectSelected, Index)gen_polygons_xld (ObjectSelected, Polygons, 'ramer', 2)get_polygon_xld (Polygons, Row, Col, Length, Phi)
*    stop ()
endfor

四、实现效果

1.边缘图

在这里插入图片描述
从颜色上可区分出这里绘制需要4笔,
数据在变量:Row, Col, Length, Phi
如图:
在这里插入图片描述

2.骨架图

在这里插入图片描述
数据在变量:Row, Col, Length, Phi
如图:
在这里插入图片描述

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

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

相关文章

【阅读】一周翻过《构建之法》,笔记整理

文章目录🚩 前言🥦 阅读笔记🌾 结语🚩 前言 我的阅读方式 我拿到这本书挺久了,之前已经零散地看过一部分,最近一周集中地花了一些时间,将整本书看过了一遍。看得比较粗略,正如“好读…

怎么管理员工混工时的现象?

如果员工存在混工时,这表明公司的管理存在漏洞。让懒散的员工认为自己可以混日子,让没有绩效考核的员工默认可以混日子,同时让对公司感到失望的员工可以完全躺平等待被公司解雇。 工时管理一直是企业需求与痛点。特别是在疫情时期&#xff0c…

华为云数据库GaussDB 为企业核心数据运行提供优质保障

华为云数据库GaussDB 为企业核心数据运行提供优质保障 在网络信息科学技术不断发展的今天,海量存储信息数据中大量的存储资源被浪费?你有没有遇见信息数据备份恢复很慢的情况?让人特别的烦躁,特别是企业遇见了这些情况&#xff0c…

JDBC工具类和JDBC登录案例

JDBC工具类: 抽取JDBC工具类:JDBCUtils 目的:简化书写 分析∶ 1.注册驱动也抽取 2.抽取一个方法获取连接对象 3.抽取一个方法释放资源 代码实现:/*** JDBC工具类*/ public class JDBCUtils {private static String url;private static String user;private static Strin…

Cadence Allegro PCB设计88问解析(十一) 之 Allegro中文件自动保存时间设置

一个学习信号完整性的layout工程师 大家在设计图纸或者编辑文档时,最常点击的应该就是保存图标了。谁也不想因为软件闪退、电脑断电等情况,我们的劳动成果就白白的消失了。在我们用Allegro进行PCB设计,就会有一个自动保存的功能,每…

数字化转型大潮下,企业如何做好绩效管理?

久其EPM白皮书的正式发布,为企业财务的数字化转型实践提供了极具价值的参考。企业绩效管理(EPM)成为行业热点对于一家企业来说,做好绩效管理究竟有多重要?对于这个问题,全球商界传奇人物、GE前CEO杰克韦尔奇…

事件对象的介绍

● 什么是事件对象?就是当你触发一个事件以后,对该事件的一些描述信息 ● 例如: ○ 你触发一个点击事件时,你点了哪个位置,坐标多少,都在事件对象的属性中体现 ○ 你触发一个键盘事件时,你按下…

探索增强型灰狼优化算法

文章目录一、理论基础1、灰狼优化算法2、探索增强型灰狼优化算法(1)改进的位置更新公式(2)非线性控制参数策略(3)EEGWO算法伪代码二、仿真实验与结果分析三、参考文献一、理论基础 1、灰狼优化算法 请参考…

计算机科学与技术是信息文明时代的入口,是数字世界的基石,是人们必须掌握的基本技能之一

从人类科技发展史的角度看,软件工程(计算机编程)是刚刚开始的信息文明巨大的趋势中的一部份。人类至今经历过三次工业革命。第一次工业革命的代表是蒸汽机,使得人类拥有了强大的动力。第二次工业革命的代表是电力和石油&#xff0…

高数_第6章无穷级数_幂级数之__阿贝尔定理

阿贝尔定理&#xff1a; 如果幂级数 在 点 x x₀(x₀≠0)处收敛&#xff0c; 则对于适合不等式 |x| < |x₀|的一切x, 都有幂级数 在点 x 处绝对收敛&#xff1b; 反之&#xff0c;如果幂级数 在点 x x₀ (x₀≠0)处发散&#xff0c; 则对于适合不等式 |x| >…

使用Code Chart绘制流程图

Code Chart介绍 Code Chart是一个基于 Javascript 的图表和图表工具&#xff0c;它基于 markdown 语法来简化和加速生成流程图的过程&#xff0c;也不止于生成流程图。 工具地址&#xff1a;https://www.iodraw.com/codechart 图形 头部用graph 或flowchart 关键字来声明流程…

Anaconda安装

文章目录1. Anaconda3简介2. Anaconda3下载3. Anaconda3安装1. Anaconda3简介 Anaconda3 是一个用于 Python 科学计算和机器学习的开源工具&#xff0c;它是 Python 的一个科学计算发行版&#xff0c;支持 Linux、macOS 和 Windows 系统&#xff0c;包含 conda 等众多工具包和…

python抓取Prometheus的数据(使用prometheus-api-client库)

python抓取Prometheus的数据(使用prometheus-api-client库) 0、写在前面 我们要想抓取Prometheus的数据,一般想到的就是requests请求,爬虫的方式来抓取,这是可行的,当然,还有一个第三方库直接封装好了,直接用就行,代码也比较少,源码点进去就能看明白,这个库叫promet…

多链世界的“高速公路”:一文读懂跨链协议演进与未来

当我们发现自己正处于另一个“加密货币寒冬”之中——这在很大程度上是由一系列项目破产、监管打击和宏观看跌推动的——但重要的是&#xff0c;我们不要忽视促成下一次牛市的技术突破和将权力下放的精神重新引入大众。 上一个周期的主题之一仍然是行业参与者讨论的最前沿的主…

无网络机器上,win下vscode客户端通过ssh连接linux服务器

目录 参考文献 前言 下载安装VSCode 下载 安装 下载和安装必要的VSCode插件 下载 安装 客户端通过ssh远程连接linux服务器 下载并安装ssh 远程连接linux服务器 参考文献 Windows使用VSCode远程Linux&#xff08;ConteOS&#xff09;开发/调试C/C&#xff08;超详细…

是真是假,AI可根据声音检测是否感染新冠 准确率达89%

据媒体报道&#xff0c;近日&#xff0c;在西班牙巴塞罗那举行的欧洲呼吸学会国际会议上公布的一项研究显示&#xff0c;AI可通过手机应用程序从人们声音中检测出新冠肺炎感染&#xff0c;其准确率达到89%。 新冠肺炎感染通常会影响上呼吸道和声带&#xff0c;导致一个人的声音…

No6.从零搭建spring-cloud-alibaba微服务框架,实现fegin、gateway、springevent等(一)

代码地址与接口看总目录&#xff1a;【学习笔记】记录冷冷-pig项目的学习过程&#xff0c;大概包括Authorization Server、springcloud、Mybatis Plus~~~_清晨敲代码的博客-CSDN博客 之前只零碎的学习过spring-cloud-alibaba&#xff0c;并没有全面了解过&#xff0c;这次学习p…

React+fetch 发送post请求 处理请求头参数配置

观看本文前 你要对fetch有一些了解 如果不了解可以先查看我的文章 React之初识fetch 通过fetch发送一个简单GET请求 然后我们来看 pust基本语法 fetch("请求地址",{method: post,headers: {Content-Type: application/json,"Authorization": "Bearer…

传统的回调函数与 ES6中的promise回调以及 ES7 的async/await终极的异步同步化

目录 传统的回调函数封装 ES6中的promise 异步同步化&#xff08;终极&#xff09; 传统的回调函数封装 js中的回调函数的理解&#xff1a;回调函数就是传递一个参数化函数&#xff0c;就是将这个函数作为一个参数传到另外一个主函数里面&#xff0c;当那个主函数执行完之后…

ACM MM 2022 Oral | PRVR: 新的文本到视频跨模态检索子任务

作者: 陈先客方向: 跨模态检索学校: 浙江工商大学概览本文介绍一篇ACM MM 2022 Oral的工作。基于传统的跨模态文本-视频检索(Video-to-Text Retrieval, T2VR)任务&#xff0c;该工作提出了一个全新的文本到视频跨模态检索子任务&#xff0c;即部分相关的视频检索(Partially Rel…