halcon 标定板像素当量的标定

背景:当镜头不是远心镜头时,FA镜头没法知道一个像素的尺寸。

1、标定板信息

标定板7*7,圆的直径是1.25mm,两个圆的距离是2.5mm,求出每排两两圆心距的像素距离,然后平均值。两点的真实距离为D,像素距离为d,这时x方向像素当量 距离=D/d;同理求y方向的像素当量的距离。

2、halcon求x方向像素当量的方法


read_image (Image, 'C:/Users/tingjie_xu/Desktop/BD1.bmp')
rgb1_to_gray(Image,Cal)*将标定板上的圆点区域抠图
threshold (Cal, Regions, 0,100)
connection (Regions, ConnectedRegions)
select_shape (ConnectedRegions, SelectedRegions1, 'area', 'and', 3500, 5000)
fill_up (SelectedRegions1, RegionFillUp)
select_shape (RegionFillUp, SelectedRegions2, 'roundness', 'and', 0.73303, 1)union1 (SelectedRegions2, RegionUnion)
shape_trans (RegionUnion, RegionTrans, 'convex')inner_rectangle1 (RegionTrans, Row1, Column1, Row2, Column2)
gen_rectangle1 (Rectangle, Row1, Column1, Row2, Column2)
dilation_rectangle1 (Rectangle, RegionDilation, 200, 200)
reduce_domain (Cal, RegionDilation, ImageReduced)*计算圆点所构成的区域的长和宽
threshold (ImageReduced, Regions, 0, 100)
connection (Regions, ConnectedRegions)
select_shape (ConnectedRegions, SelectedRegions1, 'area', 'and', 3500, 5000)
fill_up (SelectedRegions1, RegionFillUp)
select_shape (RegionFillUp, SelectedRegions2, 'roundness', 'and', 0.73303, 1)sort_region (SelectedRegions2, SortedRegions, 'character', 'true', 'row')count_obj (SortedRegions, PointNum)
colNum:=7
RowNum:=PointNum/colNumunion1 (SortedRegions, RegionUnion)
smallest_rectangle2 (RegionUnion, Row, Column, Phi, Length1, Length2)i:=0for Index_I := 0 to colNum-1 by 1for Index_J := 1 to RowNum by 1if(Index_J+1<=RowNum)select_obj(SortedRegions, ObjectSelected1, Index_J+Index_I*7)  select_obj(SortedRegions, ObjectSelected2, Index_J+1+Index_I*7)  gen_contour_region_xld(ObjectSelected1,Contours1, 'border') gen_contour_region_xld(ObjectSelected2,Contours2, 'border') *gen_contour_region_xld(ObjectSelected,Contours, 'border')fit_circle_contour_xld (Contours1, 'algebraic', -1, 0, 0, 3, 2, Row11, Column11, Radius11, StartPhi11, EndPhi11, PointOrder11)   gen_circle_contour_xld(ContCircle1, Row11, Column11, Radius11, 0, 6.28318, 'positive', 1)fit_circle_contour_xld (Contours2, 'algebraic', -1, 0, 0, 3, 2, Row22, Column22, Radius22, StartPhi22, EndPhi22, PointOrder22)   gen_circle_contour_xld(ContCircle2, Row22, Column22, Radius22, 0, 6.28318, 'positive', 1)           distance_pp(Row11, Column11, Row22, Column22, Distance)if(Distance!=0)pix[i]:=2.5/Distancei:=i+1endifendifendforendfortuple_mean( pix,Mean)  dev_display (Cal)
dev_display (RegionUnion)

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

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

相关文章

Spring Boot - Application Events 的发布顺序_ApplicationEnvironmentPreparedEvent

文章目录 Pre概述Code源码分析 Pre Spring Boot - Application Events 的发布顺序_ApplicationEnvironmentPreparedEvent 概述 Spring Boot 的广播机制是基于观察者模式实现的&#xff0c;它允许在 Spring 应用程序中发布和监听事件。这种机制的主要目的是为了实现解耦&#…

Tensorflow2.0笔记 - Tensor的数据索引和切片

主要涉及的了基础下标索引"[]",逗号",",冒号":",省略号"..."操作&#xff0c;以及gather,gather_nd和boolean_mask的相关使用方法。 import tensorflow as tf import numpy as nptf.__version__tensor tf.random.uniform([1,5,5,3],…

电脑可以连接网络但浏览器无法访问部分或全部网页

啾咪&#xff01;离大谱了&#xff0c;电脑一段时间没有用&#xff0c;最近打开却发现可以连接网络但是无法访问部分网页&#xff08;如CSDN&#xff09;&#xff0c;显示如下&#xff1a; 有三种解决方法&#xff1a; &#xff08;1&#xff09;清除DNS缓存 步骤&#xff1a;…

归并排序例题——逆序对的数量

做道简单一点的题巩固一下 归并排序实现步骤 将整个区间 [l, r] 划分为 [l, mid] 和 [mid1, r]。 递归排序 [l, mid] 和 [mid1, r]。 将左右两个有序序列合并为一个有序序列。 题目描述 给定一个长度为 n 的整数数列&#xff0c;请计算数列中的逆序对的数量。 逆序对的定义…

基础篇_开发命令行程序(输入输出,类型、变量、运算符,条件语句,循环语句,方法,package与jar)

文章目录 一. 输入输出1. System.out2. System.in3. Scanner4. 变量名5. 关键字 二. 类型、变量、运算符1. 字符与字符串字符值与字符串值转义字符文本块 2. 类型何为类型数字类型字符类型 3. 变量与运算符变量运算符 4. 练习 - 房贷计算器Math.pow()数字格式化查阅 Javadoc 三…

git 的安装

git 的安装 在我们开始使用 Git 前&#xff0c;需要将它安装在我们的电脑上。即便已经安装&#xff0c;最好将它升级到最新的版本。 我们可以通过软件包或者其它安装程序来安装&#xff0c;或者下载源码编译安装。 本文只介绍通过在 windows 上安装软件包的方式&#xff0c;其…

每日一题——LeetCode1103.分糖果 ||

方法一 个人方法&#xff1a; 有多少人就创建多大的数组并把数组的所有元素初始化为0&#xff0c;只要还有糖果&#xff0c;就循环给数组从头到尾添加糖果&#xff0c;每次分的糖果数递增1&#xff0c;最后可能刚好分完也可能不够&#xff0c;不够就还剩多少给多少。 var dis…

Maven和MyBatis框架简单实现数据库交互

MyBatis是一种基于Java语言的持久层框架&#xff0c;它的主要目的是简化与数据库的交互过程。MyBatis通过XML或注解配置来映射Java对象和数据库表之间的关系&#xff0c;并提供了灵活的查询方式和结果集处理机制。MyBatis还提供了事务管理、缓存机制、插件扩展等特性。 使用My…

电阻如何读取阻值

前言&#xff1a;大家经常见到的贴片电阻上的丝印有纯数字、数字与R组合、数字与除R之外的字母组合的&#xff0c;但大家知不知道这样的标注与贴片电阻的i精度相关&#xff1f;同一个阻值因为精度不同&#xff0c;标注也会不同。例如封装为0805的贴片电阻&#xff0c;丝印473和…

Vue-8、Vue事件处理

1、点击事件 <!DOCTYPE html> <html lang"en" xmlns:v-model"http://www.w3.org/1999/xhtml" xmlns:v-bind"http://www.w3.org/1999/xhtml"xmlns:v-on"http://www.w3.org/1999/xhtml"> <head><meta charset&quo…

小家电应用解决方案以及选型指南

电磁炉是现代厨房中常见的一种小家电产品&#xff0c;它利用电磁感应加热原理&#xff0c;可以快速、高效地进行烹饪。在电磁炉的设计和制造过程中&#xff0c;功率开关芯片的选择对于产品的性能和成本有着重要的影响。 针对电磁炉的应用需求&#xff0c;推荐采用LED驱动芯片S…

SSM框架使用Activiti工作流

1、工作流介绍 1&#xff09;、概念 工作流(Workflow)&#xff0c;就是通过计算机对业务流程自动化执行管理。它主要解决的是“使在多个参与者之间按照某种预定义的规则自动进行传递文档、信息或任务的过程&#xff0c;从而实现某个预期的业务目标&#xff0c;或者促使此目标的…