【halcon踩坑】区域为空但个数是1
背景
我在做瑕疵检测的时候,通过计算瑕疵区域的个数(count_obj())是否为0,来判断是否有瑕疵,如果不为0,那边我就会在图片上标记这个瑕疵的位置!
但是有一次我发现明明没有瑕疵,却在图片的左上角标记了一个瑕疵。
发现问题
然后我调试发现,当一个区域为空时,他的个数(count_obj())居然时1!

根据上下文,我先分析一下!
difference (RegionBlackOpening, SelectedRegions2, RegionDifference1)
RegionBlackOpening 本身时有值的,SelectedRegions2其实是和RegionBlackOpening是同一块区域。
两个相同的区域相减当然得到了一个空的区域!所以这里的意思就是,区域是空的,但是空的区域也是区域,所以计数是1! 所以,一个空的区域,却被硬生生标记,所以就出现在了图片的左上角0,0的位置
问题解决
所以,判断一个区域是否为空,不能判断他的个数,而应该判断他的面积。
如果面积是0,那么这个区域就是空!这里给一个C#的Demo。
/// <summary>
/// 判断区域是否为空
/// </summary>
/// <returns></returns>
bool RegionIsEmpty(HObject region)
{HTuple area;HOperatorSet.AreaCenter(region, out area, out _, out _);if (area == 0) return true;else return false;
}
相关文章:
【halcon踩坑】区域为空但个数是1
背景 我在做瑕疵检测的时候,通过计算瑕疵区域的个数(count_obj())是否为0,来判断是否有瑕疵,如果不为0,那边我就会在图片上标记这个瑕疵的位置! 但是有一次我发现明明没…...
第二十四章 BEV感知系列一(车道线感知)
前言 近期参与到了手写AI的车道线检测的学习中去,以此系列笔记记录学习与思考的全过程。车道线检测系列会持续更新,力求完整精炼,引人启示。所需前期知识,可以结合手写AI进行系统的学习。 BEV感知系列是对论文Delving into the De…...
C++入门讲解第一篇
大家好,我是Dark Fire,终于进入了C的学习,我知道面对我的将是什么,就算变成秃头佬,也要把C学好,今天是C入门第一篇,我会尽全力将知识以清晰易懂的方式表达出,希望我们一起加油&#…...
项目实战:分页功能实战
1、在index.html添加点击事件 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title><link rel"stylesheet" href"style/index.css"><script src"scr…...
AI人工智能大模型应用如何落地?
人工智能大模型是近年来人工智能领域的一项重要技术突破,其具备强大的计算能力和学习能力,能够处理大规模的数据和复杂的任务。 然而,要将人工智能大模型应用落地并实现实际价值,还需要克服一些挑战和问题。 首先,人…...
【优选算法系列】第一节.栈的简介(1047. 删除字符串中的所有相邻重复项和844. 比较含退格的字符串)
文章目录 前言一、删除字符串中的所有相邻重复项和 1.1 题目描述 1.2 题目解析 1.2.1 算法原理 1.2.2 代码编写二、比较含退格的字符串 2.1 题目描述 2.2 题目解析 2.2.1 算法原理 2.2.2 代码编写总结 前言 …...
PostgreSQL逻辑管理结构
1.数据库逻辑结构介绍 2.数据库基本操作 2.1 创建数据库 CREATE DATABASE name [ [ WITH ] [ OWNER [] user_name ] [ TEMPLATE [] template ] [ ENCODING [] encoding ] [ LC_COLLATE [] lc_collate ] [ LC_CTYPE [] lc_ctype ] [ TABLESPACE [] tablespace ] [ CONNECTION L…...
高匿IP有什么作用
在互联网的蓬勃发展中,IP地址作为网络通信的基础,一直扮演着举足轻重的角色。而在诸多IP地址中,高匿IP地址则是一种特殊类型,其作用和价值在某些特定场合下尤为突出。那么,高匿IP地址究竟有哪些用处呢? 首先…...
Ubuntu Linux 23.10安装manimgl
1. 简介:manimgl是使用Python语言开发数学动画的一个库。用来创建数学动画。版本有很多,今天介绍manimgl,他要依赖OpenGL库。 2. 打开Shell命令行,连接上互联网。先安装opengl。 Shell>>> sudo apt install l…...
modesim verilog仿真验证基本流程(新建工程方式)
文章目录 环境搭建一、在modelsim里创建一个新的工程二、新建verilog设计文件及仿真激励文件三、仿真结果本文演示如何使用modelsim新建工程进行功能仿真。 环境搭建 本文中采用的modelsim版本如下: modelsim altera 10.3d一、在modelsim里创建一个新的工程 打开modelsim软…...
SpringBoot+AOP+自定义注解,优雅实现日志记录
文章目录 前言准备阶段1、数据库日志表2、自定义注解编写3、AOP切面类编写4、业务层4.1、Service 层:4.2 Service 实现层: 5、测试 前言 首先我们看下传统记录日志的方式是什么样的: DeleteMapping("/deleteUserById/{userId}") …...
多式联运路径优化问题:基于拓扑排序的遗传算法染色体编码
一、什么是拓扑排序 在图论中,拓扑排序(Topological Sorting)是一个有向无环图(DAG, Directed Acyclic Graph)的所有顶点的线性序列。且该序列必须满足下面两个条件: 每个顶点出现且只出现一次。若存在一…...
Go 方法集合与选择receiver类型
Go 方法集合与选择receiver类型 文章目录 Go 方法集合与选择receiver类型一、receiver 参数类型对 Go 方法的影响二、选择 receiver 参数类型原则2.1 选择 receiver 参数类型的第一个原则2.2 选择 receiver 参数类型的第二个原则 三、方法集合(Method Set࿰…...
Unity AudioClip和PCM音频数据的转化
1 PCM音频数据转化AudioClip 假设PCM音频当前是16Khz采样率,16bit数据 byte[] pcmBytesnew byte[10240];float[] floatClipData new float[audioBytes.Length/2];for (int i 0; i < audioBytes.Length; i2){ floatData[i / 2] (short)((audioBytes[i 1] <…...
linux配置vlan后网络不通
如果在Linux上配置了VLAN,但网络不通,这可能是由于多种原因导致的。以下是一些可能的原因和解决方法: 检查物理连接:首先,确保VLAN支持的物理网络连接正常。确保网络电缆连接正确,交换机端口配置正确&#…...
GORM:在Go中轻松管理数据库
GORM综合介绍 - Go对象关系映射库 在现代软件开发中,高效的数据库管理对于构建强大的应用程序至关重要。GORM是Go开发人员寻求与数据库进行交互的简化方式的宝贵工具。GORM是Go对象关系映射的缩写,它为Go的面向对象世界与数据库的关系世界之间提供了桥梁…...
Ubuntu18.04 下PCL的卸载与安装
目录 一、卸载有问题的PCL1.7 二、编译&&安装PCL1.8.1 2.1、安装PCL依赖 2.2、编译VTK 2.3、编译PCL源码 三、 总结 写这篇博客时,本文方法已经在笔记本Ubuntu和VM虚拟机成功安装PCL1.8.1,并且通过测试。 下文方法同样适用于ubuntu18.04。…...
SMTP邮件发送图片-如何在github中存储图片并访问
之前写了一篇文章 Go:实现SMTP邮件发送订阅功能(包含163邮箱、163企业邮箱、谷歌gmail邮箱),实现了通过邮箱服务来发送邮件,但都是文字内容,要是想实现邮件发送图片,就需要将图片放到公网可访问…...
2023年软件系统架构师论文【回忆版】
2023年11月5日,全国计算机等级下半年考试,北京市软件架构师考试其中有个考点在首都经济贸易大学丰台校区),地址:北京市丰台区花乡张家路口121号(北门入校) 注意:机考的考试时间有所变…...
【使用python实现文件视频格式的转换】
1.视频格式转换有哪些常用方法? 视频格式转换的常用方法有以下几种: 使用专业的视频转换软件:这些软件可以支持多种视频格式之间的转换,如Adobe Premiere Pro、Final Cut Pro等。使用在线视频转换工具:有许多在线视频…...
stm32G473的flash模式是单bank还是双bank?
今天突然有人stm32G473的flash模式是单bank还是双bank?由于时间太久,我真忘记了。搜搜发现,还真有人和我一样。见下面的链接:https://shequ.stmicroelectronics.cn/forum.php?modviewthread&tid644563 根据STM32G4系列参考手…...
树莓派超全系列教程文档--(61)树莓派摄像头高级使用方法
树莓派摄像头高级使用方法 配置通过调谐文件来调整相机行为 使用多个摄像头安装 libcam 和 rpicam-apps依赖关系开发包 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 配置 大多数用例自动工作,无需更改相机配置。但是,一…...
YSYX学习记录(八)
C语言,练习0: 先创建一个文件夹,我用的是物理机: 安装build-essential 练习1: 我注释掉了 #include <stdio.h> 出现下面错误 在你的文本编辑器中打开ex1文件,随机修改或删除一部分,之后…...
基于当前项目通过npm包形式暴露公共组件
1.package.sjon文件配置 其中xh-flowable就是暴露出去的npm包名 2.创建tpyes文件夹,并新增内容 3.创建package文件夹...
【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表
1、行为树节点分类 在 Nav2(Navigation2)的行为树框架中,行为树节点插件按照功能分为 Action(动作节点)、Condition(条件节点)、Control(控制节点) 和 Decorator(装饰节点) 四类。 1.1 动作节点 Action 执行具体的机器人操作或任务,直接与硬件、传感器或外部系统…...
spring:实例工厂方法获取bean
spring处理使用静态工厂方法获取bean实例,也可以通过实例工厂方法获取bean实例。 实例工厂方法步骤如下: 定义实例工厂类(Java代码),定义实例工厂(xml),定义调用实例工厂ÿ…...
【RockeMQ】第2节|RocketMQ快速实战以及核⼼概念详解(二)
升级Dledger高可用集群 一、主从架构的不足与Dledger的定位 主从架构缺陷 数据备份依赖Slave节点,但无自动故障转移能力,Master宕机后需人工切换,期间消息可能无法读取。Slave仅存储数据,无法主动升级为Master响应请求ÿ…...
Android15默认授权浮窗权限
我们经常有那种需求,客户需要定制的apk集成在ROM中,并且默认授予其【显示在其他应用的上层】权限,也就是我们常说的浮窗权限,那么我们就可以通过以下方法在wms、ams等系统服务的systemReady()方法中调用即可实现预置应用默认授权浮…...
多种风格导航菜单 HTML 实现(附源码)
下面我将为您展示 6 种不同风格的导航菜单实现,每种都包含完整 HTML、CSS 和 JavaScript 代码。 1. 简约水平导航栏 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport&qu…...
自然语言处理——循环神经网络
自然语言处理——循环神经网络 循环神经网络应用到基于机器学习的自然语言处理任务序列到类别同步的序列到序列模式异步的序列到序列模式 参数学习和长程依赖问题基于门控的循环神经网络门控循环单元(GRU)长短期记忆神经网络(LSTM)…...
