halcon中的2D测量-椭圆

一、定义

二维测量指的是测量二维几何图形的参数,例如圆、椭圆、圆弧、矩形的相关参数。这里的参数对圆来说可以是半径;椭圆可以是长半轴、短半轴;矩形则包括宽和高。

二、基本步骤

1.创建测量模型
使用算子 create_metrology_model

2.设置测量图像的宽高到模型中
set_metrology_model_image_size

3.指出被测对象在图像中的大致位置
对于圆,可以设置圆心点和半径
CircleParam:=[x,y,r]
对于线,需要一个矩形,这个矩形需要包含被测直线且垂直于被测直线
对于矩形需要指定矩形的宽高和旋转角度

4.将计量对象添加到模型中
下面添加计量对象的算子分别为:圆,椭圆,矩形,线

 最后一个算子add_metrology_object_generic可以由用户自己指定shape,取值 ('circle', 'ellipse', 'line', 'rectangle2')add_metrology_object_circle_measure for circles   add_metrology_object_ellipse_measure for ellipsesadd_metrology_object_rectangle2_measure for rectanglesadd_metrology_object_line_measure for linesadd_metrology_object_generic 

5.设置模型参数
set_metrology_model_param

6.设置对象参数
set_metrology_object_param

7.对齐计量模型
align_metrology_model

8.应用测量
apply_metrology_model

9.可视化测量结果
get_metrology_object_result 查询对象的适应几何形状的参数(获取拟合结果的几何参数)

get_metrology_object_measures    访问所有定位边的行和列坐标get_metrology_object_result_contour    提供了作为XLD轮廓的适应几何形状的可视化(获取测量结果的轮廓)

三、案例

dev_close_window ()
read_image (Image, './2.png')
dev_open_window_fit_image (Image, 0, 0, -1, -1, WindowHandle)
set_display_font (WindowHandle, 14, 'mono', 'true', 'false')rgb1_to_gray (Image, GrayImage)
*创建几何测量句柄
create_metrology_model (MetrologyHandle)
*设置句柄与图像的像素关系
get_image_size (Image, Width, Height)
set_metrology_model_image_size (MetrologyHandle, Width, Height)
*自定义椭圆模型
draw_ellipse (WindowHandle, Row, Column, Phi, Radius1, Radius2)
*添加椭圆模型
*卡边尺长
MeasureLength1:=15
*卡边尺宽
MeasureLength2:=1
add_metrology_object_ellipse_measure (MetrologyHandle, Row, Column, Phi, Radius1, Radius2, MeasureLength1, MeasureLength2, 1, 30, [], [], Index)
*显示卡边尺模型
get_metrology_object_measures (Contours, MetrologyHandle, 'all', 'all', Row, Column)
*开始测量
apply_metrology_model (GrayImage, MetrologyHandle)
*显示提取到的轮廓线
get_metrology_object_result_contour (Contour, MetrologyHandle, 'all', 'all', 1.5)
*拟合,计算轮廓结果
fit_ellipse_contour_xld (Contour, 'fitzgibbon', -1, 0, 0, 200, 3, 2, Row1, Column1, Phi1, Radius1, Radius2, StartPhi, EndPhi, PointOrder)
*显示结果
*椭圆的中心点
gen_cross_contour_xld (Cross, Row1, Column1, Radius1*2, Phi1)
set_display_font (WindowHandle, 30, 'mono', 'true', 'false')
disp_message (WindowHandle, ['椭圆中心坐标:('+Row1+','+Column1+')','椭圆斜率:'+Phi1,'椭圆最大半长:'+Radius1,'椭圆最小半长:'+Radius2], 'window', 12, 112, 'green', 'false')
*清除句柄
clear_metrology_model (MetrologyHandle)

在这里插入图片描述

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

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

相关文章

leetcode hot100 买卖股票的最佳时机二

注意,本题是针对股票可以进行多次交易,但是下次买入的时候必须保证上次买入的已经卖出才可以。 动态规划可以解决整个股票买卖系列问题。 dp数组含义: dp[i][0]表示第i天不持有股票的最大现金 dp[i][1]表示第i天持有股票的最大现金 递归公…

SOLIDWORKS 查找并修复装配体配合错误

我们在SOLIDWORKS 正版软件进行装配体装配时,时常会出现一些报错,例如在配合、装配体特征或被装配体参考引用的零部件和子装配体中。一些常见的错误,如一个零部件的过定义会引发更多其他错误信息,并导致装配体停止解析配合关系。下…

背包问题(介绍+例题+代码+注解)

目录 介绍: 一、01背包 题目描述 输入描述: 输出描述: 代码: 二、完全背包 题目描述 输入描述: 输出描述: 代码: 三、多重背包 题目描述 输入描述: 输出描述: 代码: 四、背包问题 题目描述 输入描述: 输出描…

27.HarmonyOS App(JAVA)可复用列表项的ListContainer

可复用列表项的ListContainer 简短的列表可以通过定向布局实现,但是如果列表项非常多,则使用定向布局就不再合适。如需要创建50个列表项的列表,那么用定向布局实现至少需要创建50个以上的组件了。然而,限于设备屏幕大小的限制,绝大多数组件不会显示在屏幕上,却会占据大量的内存…

基础光学系列:(二)光学元件在机器视觉中的关键作用

光学元件,包括透镜、反射镜和棱镜,在机器视觉领域扮演着至关重要的角色。它们不仅是实现高精度图像捕获的基础,也是提升机器视觉系统性能的关键。通过深入了解这些光学元件的功能和应用,我们能够更好地掌握机器视觉技术的精髓。 …

算法-计算机基础知识

1&#xff0c;坐标系与数学不同&#xff0c;x轴向下&#xff0c;y轴向右 2.案例&#xff1a;螺旋矩阵 力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 class Solution {public List<Integer> spiralOrder(int[][] matrix) { List<Integer&…

Linux使用Docker部署Nacos容器并结合内网穿透实现公网访问本地服务

文章目录 推荐1. Docker 运行Nacos2. 本地访问Nacos3. Linux安装Cpolar4. 配置Nacos UI界面公网地址5. 远程访问 Nacos UI界面6. 固定Nacos UI界面公网地址7. 固定地址访问Plik 推荐 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff…

互联设备-中继器-路由器等

网卡的主要作用 1 在发送方 把从计算机系统要发送的数据转换成能在网线上传输的bit 流 。 2 在接收方 把从网线上接收来的 bit 流重组成计算机系统可以 处理的数据 。 3 判断数据是否是发给自己的 4 发送和控制计算机系统和网线数据流 计算机的分类 1、台式机 2、小型机和服…

【网站项目】437物流管理系统

&#x1f64a;作者简介&#xff1a;拥有多年开发工作经验&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。&#x1f339;赠送计算机毕业设计600个选题excel文件&#xff0c;帮助大学选题。赠送开题报告模板&#xff…

第六十八天 APP攻防-XposedFridaHook证书校验反代理代理转发

第68天 APP攻防-Xposed&Frida&Hook&证书校验&反代理&代理转发 知识点&#xff1a; 1、APP防代理绕过-应用&转发 2、APP证书校验类型-单向&双向 3、APP证书校验绕过-Frida&XP框架等 章节点&#xff1a; 1、信息收集-应用&资产提取&权…

【可实战】被测系统业务架构、系统架构、技术架构、数据流、业务逻辑分析

一、为什么要学习 更深的理解业务逻辑&#xff08;公司是做什么的&#xff1f;它最重要的商务决策是什么&#xff1f;它里面的数据流是怎么做的&#xff1f;有哪些业务场景&#xff1f;考验你对这家公司、对所负责业务的熟悉程度。公司背后服务器用什么软件搭建的&#xff1f;…

【Golang切片】

切片 切片的引入内存分析切片的定义切片的遍历切片注意事项 切片的引入 【1】切片&#xff08;slice&#xff09;是golang中一种特有的数据类型 【2】数组有特定的用处&#xff0c;但是却有一些呆板&#xff08;数组长度固定不可变&#xff09;&#xff0c;所以在Go语言的代码…