Halcon得出三角形内切圆

news2024/11/17 9:57:27

Halcon得出三角形内切圆

news2023/5/27 7:14:

目录

  • 一、得出三角形的三个角点
  • 二、用类似尺规作图法得出三角形圆心
    • 1、以三角形三角点画出圆形轮廓
    • 2、求出三角形轮廓与圆形轮廓之间的交点
    • 3、获得角平分线,三边角平分线交点为圆心
  • 三、求出圆心到边最短距离即半径

一、得出三角形的三个角点

参考上篇文章“Halcon提取三角形边缘以及获取角点”

二、用类似尺规作图法得出三角形圆心

以三角形三个边为圆心生成三个圆形轮廓
求出轮廓与轮廓之间的交点
再以交点为圆心画圆轮廓,得到两个圆的交点,获得角平分线,三边角平分线交点为圆心

1、以三角形三角点画出圆形轮廓

gen_circle_contour_xld (ContCircle1, RowA, ColumnA, 20, 0, 6.28318, 'positive', 1)
gen_circle_contour_xld (ContCircle2, RowB, ColumnB, 20, 0, 6.28318, 'positive', 1)
gen_circle_contour_xld (ContCircle3, RowC, ColumnC, 20, 0, 6.28318, 'positive', 1)

在这里插入图片描述

2、求出三角形轮廓与圆形轮廓之间的交点

intersection_contours_xld (Contour, ContCircle3, 'all', Row, Column, IsOverlapping1)
intersection_contours_xld (Contour, ContCircle1, 'all', Row2, Column2, IsOverlapping3)
intersection_contours_xld (Contour, ContCircle2, 'all', Row4, Column4, IsOverlapping5)

3、获得角平分线,三边角平分线交点为圆心

//以交点为圆心画出两个同半径圆,两圆交点连线即为角平分线
gen_circle_contour_xld (ContCircle31, Row[0], Column[0], 40, 0, 6.28318, 'positive', 1)
gen_circle_contour_xld (ContCircle32, Row[1], Column[1], 40, 0, 6.28318, 'positive', 1)
intersection_contours_xld (ContCircle31, ContCircle32, 'all', Row1, Column1, IsOverlapping2)
disp_line (3600, Row1[0], Column1[0], Row1[1], Column1[1])gen_circle_contour_xld (ContCircle21, Row2[0], Column2[0], 40, 0, 6.28318, 'positive', 1)
gen_circle_contour_xld (ContCircle22, Row2[1], Column2[1], 40, 0, 6.28318, 'positive', 1)
intersection_contours_xld (ContCircle21, ContCircle22, 'all', Row3, Column3, IsOverlapping4)
disp_line (3600, Row3[0], Column3[0], Row3[1], Column3[1])gen_circle_contour_xld (ContCircle11, Row4[0], Column4[0], 40, 0, 6.28318, 'positive', 1)
gen_circle_contour_xld (ContCircle12, Row4[1], Column4[1], 40, 0, 6.28318, 'positive', 1)
intersection_contours_xld (ContCircle11, ContCircle12, 'all', Row5, Column5, IsOverlapping6)
disp_line (3600, Row5[0], Column5[0], Row5[1], Column5[1])

在这里插入图片描述
延长直线,求交点

r:= Row1[0] - Row1[1]
n:= Column1[0] - Column1[1]
k1:= r/n
b1:=Row1[1] - k1*Column1[1]
row1:=k1*5+b1
row12:=k1*2500+b1
disp_line (3600, row1, 5, row12, 2500)
r:= Row3[0] - Row3[1]
n:= Column3[0] - Column3[1]
k1:= r/n
b1:=Row3[1] - k1*Column3[1]
row2:=k1*5+b1
row22:=k1*2500+b1
* disp_line (3600, RowBegin, ColBegin, RowEnd, ColEnd)
disp_line (3600, row2,5 , row22, 2500)
r:= Row5[0] - Row5[1]
n:= Column5[0]- Column5[1]
k1:= r/n
b1:=Row5[1] - k1*Column5[1]
row3:=k1*5+b1
row32:=k1*2500+b1
disp_line (3600, row3,5 , row32, 2500)//求出圆心 Row6, Column6
intersection_lines (row2, 5, row22, 2500, row3,5 , row32, 2500, Row6, Column6, IsOverlapping7)

在这里插入图片描述

三、求出圆心到边最短距离即半径

distance_pc(Contour, Row6, Column6, DistanceMin, DistanceMax)
gen_circle_contour_xld (ContCircle, Row6, Column6, DistanceMin, 0, 6.28318, 'positive', 1)

在这里插入图片描述

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

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

相关文章

接口自动化测试框架-Requests库简介及安装

接口测试工具的不足点: 测试数据不可控制 无法测试加密接口 扩展能力不足 Ps:对上述问题,Robot Framework都能满足,但是其脚本的可读性差是它最大弱点,如果需要为它开发系统关键字,还不如直接写Python程…

LiangGaRy-学习笔记-Day19

1、回顾知识 1.1、文件系统说明 xfs与ext4文件系统 CentOS7以上:默认的就是XFS文件系统 xfs 使用的就是restore、dump等工具 CentOS6默认的就是ext4文件系统 extundelete工具就是用于ext4系统 1.2、回顾Linux文件系统 Linux文件系统是由三个部分组成 inode文…

01 云原生生态系统解读

云计算的技术革命 互联网时代的历程 云计算到底是什么 云计算历程 云平台的优缺点 优势 稳定性:云平台大量资源,分布式集群部署,保障服务永不宕机,几个9弹性扩展:按需索取,一键秒级开通需要的资源安全性&…

500道网络安全/WEB安全面试题合集!附答案解析

前言 随着国家政策的扶持,网络安全行业也越来越为大众所熟知,想要进入到网络安全行业的人也越来越多。 为了拿到心仪的 Offer 之外,除了学好网络安全知识以外,还要应对好企业的面试。 作为一个安全老鸟,工作这么多年…

vue3+element-plus的后台管理系统模板 和 vue3+ant-design-vue的后台管理系统模板

项目介绍 规范:后台系统模板,按照企业级别的规范搭建的。 权限控制:通过后端返回的路由表(这个路由表是由前端这边在系统配好的然后存储在后端的)来动态渲染菜单和注册路由,同时也根据页面内的接口权限对页…

能用excel批量提取网页内特定数据吗?

这个需求其实是采集数据,用第三方软件比较合适,当然,用excel也可以批量提取网页内特定文字。请按照以下步骤操作: 1. 打开要提取的网页,并选中要提取的文字,例如一个表格里的数据。 2. 复制选中的文字。 …

你的 ChatGPT 使用姿势是错的!告诉你 4 个使用 ChatGPT 的小技巧

大部分人使用 ChatGPT 的方式都是错的,比如: 没有在提问时提供案例。忽略了可以通过设置 ChatGPT 的角色来控制它的行为。没有提供过多有效信息,而是让 ChatGPT 猜猜猜。 之所以会犯这些错误,是因为我们使用 ChatGPT 时还停留在…

HarmonyOS3 Stage模型介绍

Stage模型是HarmonyOS 3.1 Develper Preview(API 9)版本开始新增的模型,也是目前HarmonyOS主推且会长期演进的模型。在该模型中,由于提供了AbilityStage、WindowStage等类作为应用组件和Window窗口的“舞台”,因此称这…

一款红队批量脆弱点搜集工具

功能 指纹识别:调用“三米前有香蕉皮“前辈工具,他的工具比finger好用 寻找资产中404,403,以及网页中存在的其他薄弱点,以及需要特定路径访问的资产 后续会把nuclei加进来 目前只有windows可以用 使用 第一次使用脚本请运行p…

Neo4j安装配置教程

目录结构 前言Neoj4简介安装JDKNeo4j安装步骤Neo4j下载解压Neo4j压缩包配置环境变量启动Neo4j执行命令报错,报错信息如下: 启动Neo4j,再次测试浏览器访问Neo4j参考链接 前言 安装所需配件网盘一键下载。以下描述中,官网下载均有描…

1、2、3类LSA解析

拓扑 需求 (1)企业核心机房,连接不同楼宇,实现不同楼宇互通; (2)企业核心机房设置为OSPF骨干区域; (3)其他办公楼宇为非骨干区域,通过路由器与…

Vue+SpringBoot打造超市商品管理系统(附源码文档)

作者主页:Designer 小郑 作者简介:Java全栈软件工程师一枚,来自浙江宁波,负责开发管理公司OA项目,专注软件前后端开发、系统定制、远程技术指导。CSDN学院、蓝桥云课认证讲师,全栈领域优质创作者。 目录 一…

C++学习之旅 - 指针

文章目录 指针的基本概念指针的定义与使用指针占用的内存空间空指针野指针cont修饰指针指针&数组访问数组中第一个元素(访问&指针)如何访问数组中的第二个字节 指针和函数 指针的基本概念 指针的作用: 可以通过指针间接访问内存 内存编号是从0开始记录的,一…

offer收割机再现,接口测试常问面试题 (附答案),对标大厂面试...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 软件测试面试题&am…

海外网红营销必备:品牌与海外红人合作的谈判技巧指南

随着社交媒体的飞速发展,海外网红已经成为品牌营销的热门选择。与知名红人合作,可以有效地扩大品牌影响力、提升产品认知度,并吸引目标受众。然而,与红人的谈判过程常常充满挑战,需要品牌营销人员具备一定的技巧和策略…

以太坊是匿名化的影子银行?将如何适应并影响传统金融?

以太坊经常被描述为传统金融权力的对立面。实际上,以太坊的目标并不是去颠覆传统金融领域,而试图去补充和改善它。未来,这两个系统将会有更多的交集。 多极世界中的中立性 以太坊并不是一种隐形的货币替代品和匿名的影子银行,目前…

人才“选用育留”难?做好这步,人力资源或许比你想象的更轻松

人才作为企业生存和发展最重要的资源之一,如何发现、使用、培养、留住优秀人才是所有企业人力资源管理的关键。但在实际场景当中,“招聘流程长造成人才流失”、“员工招聘不精准、效率低”、“员工培育周期长、成本高”、“优秀人才留不住”等问题正深深…

浅入浅出 iptables 网络隔离原理

01 iptables简介 iptables ipfirewall(内核1.x时代) ipchains(内核2.x时代) iptables 网络协议栈 Link Layer 数据链路层的数据流向,根据mac寻址找到对应的网卡后向上进入网络层 Network Layer 网络层的数据流向&am…

实训第一天

目录 主流的关系数据库 非关系型数据库 Mysql的启动和停止 Mysql登录方式本地登录 远程登录 查看mysql数据库 创建数据库 使用数据库 删除数据库 Mysql结构化查询语句 mysql 数据类型 数值类型 字符类型 日期类型 唯一约束与主键约束 主流的关系数据库 mysql,db2,oracle&a…

Selenium自动化之弹窗处理

1.前言 我们在使用Selenium做Web自动化测试时,页面经常出现弹窗,如果不处理后续的测试脚本就无法正常运行,今天我们就带大家一起来学习如何处理Web页面上的弹窗。 2.Web页面弹窗的分类 弹窗通常有3种:Alert类型弹框、Confirm类…