【halcon】选择一个最大的面积

背景

我们可以用select_shape_xld (Edges, SelectedXLD, 'area', 'and', 49000, 100000) 对面积筛选,但有时这得到的是一个数值,而不是一个值。
而我们想得到这个数组中的最大值,该怎么做呢?

获取最大的面积的轮廓

*面积选择
select_shape_xld (Edges, SelectedXLD, 'area', 'and', 49000, 100000)
area_center_xld (SelectedXLD, Area, Row, Column, PointOrder)
tuple_sort_index (-Area, Indices)
select_obj (SelectedXLD, SelectedXLD, Indices[0]+1) 

这里那轮廓类型举例子,select_shape_xld,筛选轮廓面积。可能得到多个轮廓,此时通过 area_center_xld 可以得到轮廓们的具体面积大小。
此时Area就是一个数组。

tuple_sort_index

再通过 tuple_sort_index 对数组排序,这个排序是从小到大的
他会将数组中面积最小的轮廓下标放到最前面。
所以,这里需要注意的是,tuple_sort_index 并不是将Area这个数组本身进行排序,而是得到一个新的下标数组。(这里我将Area前面加了一个负号,最大的就会变成最小的,这样原来最大的就会放到最前面)

select_obj

由于我们得到是下标数组,所以需要select_obj,他可以通过下标选择对象!
但是,这里有个问题需要注意。halcon中HTuple类型计数是从0开始计算的。
而select_obj选择是HObject对象数组,Hobject对象数组是从1开始计数的。
所以这里 Indices[0] 先得到下标数组的第0个值,这个下标对应面积最大轮廓!但是HTuple类型计数是从0开始计算的,而 SelectedXLD对象数组是从1开始计算的,所以,这里Indices里的下标值都需要加上一个1才能对应上SelectedXLD中的对象,于是就有下面这句话了:
select_obj (SelectedXLD, SelectedXLD, Indices[0]+1)

小结

整个过程比较绕,习惯就好啦~~~~

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

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

相关文章

【ElasticSearch系列-03】ElasticSearch的高级句法查询Query DSL

ElasticSearch系列整体栏目 内容链接地址【一】ElasticSearch下载和安装https://zhenghuisheng.blog.csdn.net/article/details/129260827【二】ElasticSearch概念和基本操作https://blog.csdn.net/zhenghuishengq/article/details/134121631【二】ElasticSearch的高级查询Quer…

RAM和ROM的区别(详解)

RAM和ROM的区别 RAM(随机存取存储器)和ROM(只读存储器)都是计算机中常见的存储器类型,它们在计算机系统中有不同的作用和特性。 RAM(随机存取存储器): 作用: 用于临时存储…

网络架构学习之FCNVMB(基于U-Net架构)

目录 一、U-Net介绍 1.1 网络简单介绍 1.2 网络特点 二、FCNVMB介绍 2.1 文章简介 2.2 网络简单介绍 2.3 代码介绍 2.4 跳跃连接 2.5 训练过程 2.6 FCNVMB与InversionNet的比较 一、U-Net介绍 1.1 网络简单介绍 U-Net是基于全卷积网络下一个语义分割应用于生物医学的深…

面试算法54:所有大于或等于节点的值之和

题目 给定一棵二叉搜索树,请将它的每个节点的值替换成树中大于或等于该节点值的所有节点值之和。假设二叉搜索树中节点的值唯一。例如,输入如图8.10(a)所示的二叉搜索树,由于有两个节点的值大于或等于6(即…

小红书app拉新推广一手官签渠道 附地推网推项目攻略

小红书app拉新高价版本在”聚量推客“上架啦! 可以通过小红书申请后在”聚量推客“进行报备,审核通过后即可开始推广 简单易做,仅允许 地推 网推 校园 社群 私域量等推广方式推广,属于百搭项目

自动化测试和性能测试面试题精选

自动化测试相关 包含 Selenium、Appium 和接口测试。 1. 自动化代码中,用到了哪些设计模式? 单例模式工厂模式PO模式数据驱动模式 2. 什么是断言? 检查一个条件,如果它为真,就不做任何事,用例通过。如果…

uniapp写一个计算器用于记账(微信小程序,APP)

提要:自己用uniapp写了一个记账小程序(目前是小程序),写到计算器部分,在网上找了别人写的计算器,大多数逻辑都是最简单的,都不能满足一个记账计算器的基本逻辑。与其在网上找来找去,…

K8S运维 解决openjdk:8-jdk-alpine镜像时区和字体问题

目录 一、问题 二、解决 三、完整代码 一、问题 由于项目的Dockerfile中使用openjdk:8-jdk-alpine作为基础镜像来部署服务,此镜像存在一定问题,例如时差8小时问题,或是由于字体问题导致导出excel文件,图片处理内容为空等。 二…

【扩散模型】不同组件搭积木,获得新模型

学习地址: https://github.com/huggingface/diffusion-models-class/tree/main/unit3 VAE The Tokenizer and Text Encoder UNet In-Painting 例如:基于contrlnet做的校徽转图片

视频会议系统方案报价

视频会议系统 报价方案是咨询视频会议系统价格用户所关注的,但是报价是一个比较细致的工作,需要从多维度进行对比。 1. 视频会议终端设备费用:根据所需设备的数量和所选设备价格确定。视频会议终端类型各异,摄像头、麦克风、显示设…

QT5.15.2搭建Android编译环境及使用模拟器调试(全)

一、安装QT5.15.2 地址:下载 我电脑的windows的,所以选windows 由于官方安装过程非常非常慢,一定要跟着步骤来安装,不然慢到怀疑人生 1)打开"命令提示符"(开始 -> Windows 系统 -> 命令…

清华大学利用可解释机器学习,优化光阳极催化剂,助力光解水制氢

水的太阳能光电化学 (PEC) 分解是将太阳能高效转换为氢能的方法,是一种很有前景的可再生能源生产方式。然而,受电极性质及电极缺陷的影响,PEC 反应的效率较低,需要合适的助催化剂辅助。而电解池、光电极和助催化剂组成的 PEC 系统…

windows server 2016调优

1. 增加TCP连接的最大数量: 在您当前的注册表路径(HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters)中的右侧窗格,右击空白处,选择“新建” -> “DWORD (32位) 值”。为新的值命名为TcpNu…

【深度学习】【pytorch】对卷积层置零卷积核进行真实剪枝

最近需要对深度学习模型进行部署,因此需要对模型进行压缩,博主取舍了很多大佬的博文并亲测有效,分享笔记邀大家共同学习讨论 文章目录 前言卷积层剪枝总结 前言 深度学习剪枝(Pruning)是一种用于减少神经网络模型大小、减少计算量和提高推理效率的技术,通过去除神经…

thinkphp的路径参数(RESTFul风格),把参数写在路径里

thinkphp官方文档 https://www.kancloud.cn/manual/thinkphp5_1/353969 有一个Blog控制器,里面的read方法是固定的,不能该 route.php里添加如下代码,访问 blog对应的就是 android/blog Route::resource(blog,android/blog);然后访问路径

设计模式——模板方法模式(Template Pattern)+ Spring相关源码

文章目录 一、模板方法模式定义二、例子2.1 菜鸟教程例子2.1.1 抽象类Game 定义了play方法的执行步骤。2.1.2 继承Game类并实现initialize、startPlay、endPlay方法。2.1.3 使用 2.2 JDK源码 —— Map 2.3 Spring源码 —— JdbcTemplate2.4 Spring源码 —— RestTemplate三、其…

NLP之Bert实现文本分类

文章目录 1. 代码展示2. 整体流程介绍3. 代码解读4. 报错解决4.1 解决思路4.2 解决方法 5. Bert介绍5.1 什么是BertBERT简介:BERT的核心思想:BERT的预训练策略:BERT的应用:为什么BERT如此受欢迎?总结: 1. 代…

windows使用YOLOv8训练自己的模型(0基础保姆级教学)

目录 前言 一、使用labelimg制作数据集 1.1、下载labelimg 1.2、安装库并启动labelimg 1.4、制作YOLO数据集 二、使用YOLOv8训练模型 2.1、下载库——ultralytics (记得换源) 2.2、数据模板下载 2.3、开始训练 1、启动train.py,进行…

QT+SQLite数据库配置和使用

一、简介 1.1 SQLite(sql)是一款开源轻量级的数据库软件,不需要server,可以集成在其他软件中,非常适合嵌入式系统。Qt5以上版本可以直接使用SQLite(Qt自带驱动)。 二、下载和配置 2.1 SQLite下载…

GitLab(2)——Docker方式安装Gitlab

目录 一、前言 二、安装Gitlab 1. 搜索gitlab-ce镜像 2. 下载镜像 3. 查看镜像 4. 提前创建挂载数据卷 5. 运行镜像 三、配置Gitlab文件 1. 配置容器中的/etc/gitlab/gitlab.rb文件 2. 重启容器 3. 登录Gitalb ① 查看初始root用户的密码 ② 访问gitlab地址&#…