halcon微积分原理生成卡尺,异形产品宽度测量

news2024/12/23 18:15:07

1.普通测量项目中,我们可以利用halcon的测量模型,例如add_metrology_object_line_measure。很方便的测量直线,圆,椭圆,矩形等。这些工具都有一个缺点是,需要提前绘制测量位置,然后利用仿射变换跟随,或者在项目中动态的生成测量位置。但是对于异形产品测量时,这些办法就不适应了,如下图形状,就需要根据微积分原理,实时的生成卡尺进行测量。
在这里插入图片描述

2.实现代码

dev_close_window ()
dev_open_window (0, 0, 512, 512, 'black', WindowHandle)
read_image (Image, 'C:/Users/haoyu.dou/Desktop/圆弧胶.bmp')
decompose3 (Image, R, G, B)
mean_image (R, ImageMean, 255, 255)
dyn_threshold (R, ImageMean, RegionDynThresh, 25, 'light')
opening_circle (RegionDynThresh, RegionOpening, 15)
connection (RegionOpening, ConnectedRegions)
skeleton (ConnectedRegions, Skeleton)
get_region_points (Skeleton, Rows, Columns)
gen_cross_contour_xld (Cross, Rows, Columns, 6, 0.785398)
tuple_sort_index (Columns, Indices)
dev_display (R)
dev_display (Cross)
get_image_size (ImageMean, Width, Height)
gen_empty_obj (Edge_MeasureOut)
gen_empty_obj (Rectangle_MeasureOut)
*积分间距
RecDis:=50
for Index := 0 to |Rows|-RecDis-1 by RecDis
    *生成测量卡尺,隔50个像素,计算一小段区域角度
    angle_lx (Rows[Indices[Index]], Columns[Indices[Index]], Rows[Indices[Index+RecDis]], Columns[Indices[Index+RecDis]], Angle)
    *把每一个卡尺轮廓画出来
    gen_rectangle2_contour_xld (Rectangle, (Rows[Indices[Index]]+Rows[Indices[Index+RecDis]])/2, (Columns[Indices[Index]]+Columns[Indices[Index+RecDis]])/2, Angle-rad(90), 150, RecDis/2)
    concat_obj (Rectangle_MeasureOut, Rectangle, Rectangle_MeasureOut)
    *生成垂直待测区域卡尺
    gen_measure_rectangle2 ((Rows[Indices[Index]]+Rows[Indices[Index+RecDis]])/2, (Columns[Indices[Index]]+Columns[Indices[Index+RecDis]])/2, Angle-rad(90), 150, RecDis/2, Width, Height, 'nearest_neighbor', MeasureHandle)
    measure_pairs (R, MeasureHandle, 1, 20, 'all', 'all', RowEdgeFirst, ColumnEdgeFirst, AmplitudeFirst, RowEdgeSecond, ColumnEdgeSecond, AmplitudeSecond, IntraDistance, InterDistance)
    *获取测量上边缘
    Get_MeasureEdge (Edge_MeasureOut, Marker, Edge_MeasureOut, RowEdgeFirst, ColumnEdgeFirst, RecDis/2, Angle-rad(90))
    *获取测量下边缘
    Get_MeasureEdge (Edge_MeasureOut, Marker, Edge_MeasureOut, RowEdgeSecond, ColumnEdgeSecond, RecDis/2, Angle-rad(90))
            
           
endfor
dev_display (R)
dev_set_color ('green')
dev_display (Rectangle_MeasureOut)
dev_set_color ('red')
dev_display (Edge_MeasureOut)

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

力扣1116.打印零与奇偶数--------题解

题目描述 现有函数 printNumber 可以用一个整数参数调用,并输出该整数到控制台。 例如,调用 printNumber(7) 将会输出 7 到控制台。 给你类 ZeroEvenOdd 的一个实例,该类中有三个函数:zero、even 和 odd 。ZeroEvenOdd 的相同实…

使用langchain与你自己的数据对话(二):向量存储与嵌入

之前我以前完成了“使用langchain与你自己的数据对话(一):文档加载与切割”这篇博客,没有阅读的朋友可以先阅读一下,今天我们来继续讲解deepleaning.AI的在线课程“LangChain: Chat with Your Data”的第三门课:向量存储与嵌入。 …

java整合chatGPT

public void test_chatGPT() throws IOException {String pro "127.0.0.1";//本机地址int pro1 7890; //代理端口号//创建一个 HttpHost 实例,这样就设置了代理服务器的主机和端口。HttpHost httpHost new HttpHost(pro, pro1);//创建一个 RequestConf…

Appium+python自动化(二十)- Monkey(猴子)日志(超详解)

简介 日志是非常重要的,用于记录系统、软件操作事件的记录文件或文件集合,可分为事件日志和消息日志。具有处理历史数据、诊断问题的追踪以及理解系统、软件的活动等重要作用,在开发或者测试软系统过程中出现了问题,我们首先想到的…

macOS Monterey 12.6.8 (21G725) 正式版发布,ISO、IPSW、PKG 下载

macOS Monterey 12.6.8 (21G725) 正式版发布,ISO、IPSW、PKG 下载 本站下载的 macOS 软件包,既可以拖拽到 Applications(应用程序)下直接安装,也可以制作启动 U 盘安装,或者在虚拟机中启动安装。另外也支持…

Google 登录支付,Firebase 相关设置

登录sdk: https://developers.google.com/identity/sign-in/android/start?hlzh-cn 支付sdk: https://developers.google.com/pay/api/android/overview?hlzh-cn Firebase sdk: https://firebase.google.com/docs/android/setup?hlzh-cn 登录设置: 创建凭据&…

U盘做PE系统盘

下载微PE工具箱 网址:https://www.wepe.com.cn/ 下载好后可以看到一个.exe文件 安装PE系统 先插入U盘到电脑,然后打开微PE工具箱,选择安装到U盘 等待制作成功 这时候U盘会被分成两个分区,EFI分区是PE微系统所在的分区&a…

蓝桥杯专题-真题版含答案-【最大公共子串】【阿姆斯特朗数】【出售金鱼】【亲密数】

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例点击跳转>软考全系列点击跳转>蓝桥系列 👉关于作者 专注于Android/Unity和各种游…

Android开发核心技术还是Framework~

这几年,社会问题层出不穷,最头疼的就是民生就业问题,大厂裁员,小厂倒闭,每年大批量的应届毕业生也涌入就业市场。 近几日,统计局也发布了就业相关数据,全国失业青年达600多万,面对此…

Solr原理剖析

一、简介 Solr是一个高性能、基于Lucene的全文检索服务器。Solr对Lucene进行了扩展,提供了比Lucene更为丰富的查询语言,并实现了强大的全文检索功能、高亮显示、动态集群,具有高度的可扩展性。同时从Solr 4.0版本开始,支持SolrCl…

《Ansible自动化工具篇:ubuntu操作系统基于ansible工具一键远程离线部署之K8S1.24.12二进制版集群》

一、部署背景 由于业务系统的特殊性,我们需要针对不同的客户环境部署二进制版K8S集群,由于大都数用户都是专网环境,无法使用外网,为了更便捷,高效的部署,针对业务系统的特性,我这边编写了 基于a…

pytest 核心库 pluggy 详解

目录 前言: 代码案例 实例化: 添加到钩子定义中 (add_hookspecs): 注册插件 (register): 传递实现插件的实体类对象 运行插件 pm.hook.myhook(arg11, arg22):本质就是调用对象的call方法 前言: pytest 是一个广泛使用的自动化测试框架&#xff0c…

明星代言的益处:提升品牌价值与销售增长的有力策略

​在当今竞争激烈的商业世界中,企业为了脱颖而出,吸引更多目标消费者的关注,常常需要运用一系列巧妙的市场营销策略。而其中,明星代言无疑是一种备受瞩目的行之有效的手段。通过让明星成为产品或服务的代言人,企业能够…

freeBSD:(虚拟机和实体机)官网下载——安装

freebsdiso镜像获取 获取 FreeBSD | The FreeBSD Project 官网 根据你 计算机型号找对应的镜像,现在大部分都是amd64的 找寻你需要的镜像,我这里选择4g的镜像,点击即可下载 刻录u盘(虚拟机用户可以跳过) 这里我们使…

C# 存在重复元素

217 存在重复元素 给你一个整数数组 nums 。如果任一值在数组中出现 至少两次 ,返回 true ;如果数组中每个元素互不相同,返回 false 。 示例 1: 输入:nums [1,2,3,1] 输出:true 示例 2: 输…

【100天精通python】Day14:python 标准模块,自定义模块

目录 1 python 模块 2 标准模块 2.1 常见的标准模块 2.2 标准模块的导入 3 自定义模块 3.1 创建模块 3.2 导入模块 3.2.1 使用import 语句导入模块 3.2.2 使用from... import 语句导入模块 3.2.3 导入模块的全部定义 3.2.4 导入两个包含同名函数的模块 模块与函数的…

【Docker】Docker持续集成与持续部署(四)

前言: Docker与持续集成/持续部署(CI/CD)的作用是通过容器化技术实现环境一致性、快速构建和隔离性,从而加快软件交付速度、提高部署效率,确保持续集成和持续部署的顺利实施。 持续集成(Continuous Integra…

chrome解决http自动跳转https问题

1.地址栏输入: chrome://net-internals/#hsts 2.找到底部Delete domain security policies一栏,输入想处理的域名,点击delete。 3.再次访问http域名不再自动跳转https了。

1.项目需求-项目实现

1.项目需求-项目实现代码是依次迭代的 慢慢增加。 密码只能输入整数,密码一般用字符串,用户名和密码都用字符串实现 需要头文件 不识别内容 string需要头文件。c头文件里没有.h #include string 是c特有的类型。 总结:string 是c特有的类型…

【冷冻电镜】InSilicoTEM 使用手册

简介 InSilicoTEM是一个用来模拟生成冷冻电镜显微图像的软件,原论文是"Image formation modeling in cryo-electron microscopy"。 该软件基DIPImage和MATLAB开发。 (注:在GitHub上的代码,只适用于DIPImage2.9以及更早…