当前位置: 首页 > article >正文

Halcon实战:用area_center算子快速搞定图像区域面积与中心点计算(附完整代码)

Halcon实战用area_center算子快速搞定图像区域面积与中心点计算附完整代码在工业质检、医疗影像或自动化测量领域图像区域的面积与中心点坐标是最基础却至关重要的特征参数。想象一下这样的场景生产线上需要统计零件表面气孔的数量和分布位置或是医疗影像中计算病灶区域的面积变化——这些任务本质上都在解决同一个问题如何从图像中提取目标区域并量化其空间属性。Halcon作为机器视觉领域的标杆工具其area_center算子正是为此而生的利器。与传统手动测量相比Halcon的方案具备三大优势毫秒级响应千兆像素图像的处理可在50ms内完成亚像素精度中心点坐标精度达0.1像素级批量处理能力单次调用可处理上万个独立区域下面我们将通过一个完整的PCB板焊点检测案例演示如何从零构建解决方案。本文代码已通过Halcon 21.05实测可直接移植到您的项目中。1. 环境准备与图像预处理1.1 硬件配置建议对于实时检测场景推荐以下硬件组合组件类型推荐配置性能影响工业相机500万像素全局快门决定图像原始质量镜头远心镜头(0.1%畸变)避免边缘畸变误差光源红色环形LED增强对比度工控机i7-1185G7处理器影响处理帧率* 初始化视觉窗口 dev_close_window () read_image (PCBImage, pcb_solder.jpg) get_image_size (PCBImage, Width, Height) dev_open_window (0, 0, Width, Height, black, WindowHandle) dev_display (PCBImage)1.2 图像增强关键步骤原始图像往往存在光照不均问题这里采用同态滤波局部阈值的组合方案* 转换到HSV空间提取亮度通道 rgb1_to_hsv (PCBImage, H, S, V) * 同态滤波消除光照影响 homomorphic_filter (V, FilteredImage, 0.8, 2.0) * 自适应阈值分割 binary_threshold (FilteredImage, Region, max_separability, light, UsedThreshold)注意当处理反光表面时建议增加偏振片并调整光源角度至30°-45°可显著减少镜面反射干扰。2. 区域分割与优化2.1 连通域分离技巧直接阈值分割得到的区域可能存在粘连需要精细化处理* 形态学开运算去除噪点 opening_circle (Region, CleanedRegion, 3.5) * 连通域分析 connection (CleanedRegion, ConnectedRegions) * 面积筛选(排除50像素的噪声) select_shape (ConnectedRegions, SelectedRegions, area, and, 50, 99999)2.2 区域特征预筛选在实际项目中我们通常需要结合多个特征进行初筛* 筛选圆形度0.7的区域(近似圆形焊点) select_shape (SelectedRegions, SolderRegions, circularity, and, 0.7, 1.0) * 排除边缘区域(距边界20像素) select_shape (SolderRegions, FinalRegions, row, and, 20, Height-20) select_shape (FinalRegions, FinalRegions, column, and, 20, Width-20)3. area_center核心应用3.1 算子深度解析area_center的计算原理值得关注面积计算实际统计区域内的像素总数当使用亚像素精度区域时会计算像素的覆盖比例中心点公式Row Σ(row_i)/N, Column Σ(col_j)/N其中N为区域像素数* 执行特征计算 area_center (FinalRegions, Area, Row, Column) count_obj (FinalRegions, NumRegions)3.2 结果可视化方案专业级的可视化需要兼顾信息密度和美观性* 创建测量结果表格 create_table (2, NumRegions1, WindowHandle, TableHandle) set_table_cell (TableHandle, 0, 0, ID) set_table_cell (TableHandle, 1, 0, Area(pixel)) for i : 1 to NumRegions by 1 set_table_cell (TableHandle, 0, i, i$d) set_table_cell (TableHandle, 1, i, Area[i-1]$.1f) * 在图像标注中心点 dev_set_color (lime green) set_tposition (WindowHandle, Row[i-1]-15, Column[i-1]) write_string (WindowHandle, i$d) endfor4. 工业级应用扩展4.1 坐标转换实战当需要将像素坐标转换为机械臂坐标系时需进行手眼标定* 读取标定矩阵(需预先完成相机标定) read_cam_par (hand_eye.dat, CamParam) * 坐标转换(假设Z0) image_points_to_world_plane (CamParam, Pose, Row, Column, 0, X, Y)4.2 动态阈值优化策略针对不同批次产品的颜色变化可采用在线学习方案* 历史数据训练阈值模型 create_threshold_model (ThresholdModel) train_threshold_model (ThresholdModel, TrainingImages, manual, TrainingRegions) * 应用模型 apply_threshold_model (NewImage, ThresholdModel, ResultRegions)5. 性能优化技巧5.1 并行计算配置启用Halcon的GPU加速模块可提升3-8倍性能* 查询可用计算设备 query_available_compute_devices (DeviceHandles) * 选择NVIDIA GPU set_compute_device (DeviceHandles[0]) enable_compute_device (true)5.2 内存管理要点长期运行的视觉系统需要特别注意内存泄漏* 每处理100帧后清理内存 if (FrameCount mod 100 0) clear_obj (TemporaryObjects) garbage_collect () endif在最近的一个汽车零部件检测项目中这套方案成功将误检率从5.3%降至0.7%。其中最关键的是在区域分割阶段增加了形态学重建步骤有效消除了金属表面的纹理干扰。具体实现时建议先用inspect_shape_model预分析图像特性再针对性设计预处理流程。

相关文章:

Halcon实战:用area_center算子快速搞定图像区域面积与中心点计算(附完整代码)

Halcon实战:用area_center算子快速搞定图像区域面积与中心点计算(附完整代码) 在工业质检、医疗影像或自动化测量领域,图像区域的面积与中心点坐标是最基础却至关重要的特征参数。想象一下这样的场景:生产线上需要统计…...

Windows平台微信/QQ/TIM防撤回补丁完整使用指南:如何实现消息保护与多开功能

Windows平台微信/QQ/TIM防撤回补丁完整使用指南:如何实现消息保护与多开功能 【免费下载链接】RevokeMsgPatcher :trollface: A hex editor for WeChat/QQ/TIM - PC版微信/QQ/TIM防撤回补丁(我已经看到了,撤回也没用了) 项目地址…...

HDLbits实战解析:从状态机基础到One-Hot编码进阶

1. 状态机基础与HDLbits实战入门 第一次接触状态机时,我也被那些抽象的状态转换图绕得头晕。直到在HDLbits上刷完Fsm3这道题,才真正理解状态机就像自动售货机的工作逻辑 - 投币、选择、出货,每个动作都对应明确的状态跳转。HDLbits平台最棒的…...

嵌入式开发工具

嵌入式开发工具:赋能智能硬件的核心技术引擎 在万物互联的时代,嵌入式系统已成为智能设备的核心大脑,而开发工具则是构建这一大脑的"手术刀"。从智能家居到工业自动化,嵌入式开发工具通过高效的代码编写、调试和优化&a…...

第9章 函数-9.4 函数参数的传递

在Python中,根据实参的数据类型,可以将函数参数的传递模式分为2种,一是值传递,其包括整数、浮点数、字符串和元组;二是引用传递,其包括列表、字典、集合和对象。值传递和引用传递的区别是,函数参…...

3分钟快速上手Aider:终极AI结对编程助手完全指南

3分钟快速上手Aider:终极AI结对编程助手完全指南 【免费下载链接】aider aider is AI pair programming in your terminal 项目地址: https://gitcode.com/GitHub_Trending/ai/aider 你是否渴望在终端中拥有一个能理解你代码库的AI编程伙伴?Aider…...

BilibiliDown视频下载器终极完整指南:5分钟从新手到高手

BilibiliDown视频下载器终极完整指南:5分钟从新手到高手 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader 😳 项目地址: https://gitcode.com/gh_mirrors…...

万字干货 | OpenClaw 进阶玩法大全:技能 / 多 Agent / 省钱 / 安全,+ 实战技巧一次学会图

1.概述在人工智能快速发展的今天,AI不再仅仅是回答问题的聊天机器人,而是正在演变为能够主动完成复杂任务的智能代理。OpenAI的Codex CLI就是这一趋势的典型代表——一个跨平台的本地软件代理,能够在用户的机器上安全高效地生成高质量的软件变…...

Docker Swarm 搞定高可用集群,生产环境再也不怕服务挂掉了

Docker Swarm是什么? Docker Swarm 是 Docker 官方推出的容器集群管理工具,基于 Go 语言实现。代码开源在:https://github.com/docker/swarm 使用它可以将多个 Docker 主机封装为单个大型的虚拟 Docker 主机,快速打造一套容器云平…...

如何5分钟搞定抖音批量下载:douyin-downloader完整使用指南

如何5分钟搞定抖音批量下载:douyin-downloader完整使用指南 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback …...

如何实现零训练深度换脸:roop-unleashed终极指南

如何实现零训练深度换脸:roop-unleashed终极指南 【免费下载链接】roop-unleashed Evolved Fork of roop with Web Server and lots of additions 项目地址: https://gitcode.com/gh_mirrors/ro/roop-unleashed 在当今数字内容创作爆炸的时代,视频…...

OneMore插件终极指南:3步解锁OneNote隐藏的160+效率神器

OneMore插件终极指南:3步解锁OneNote隐藏的160效率神器 【免费下载链接】OneMore A OneNote add-in with simple, yet powerful and useful features 项目地址: https://gitcode.com/gh_mirrors/on/OneMore 还在为OneNote功能单一而烦恼?OneMore插…...

04 前端 Web 开发 HTML5 + CSS3 + 移动 web 视频教程,前端web入门首选黑马程序员

04 前端 Web 开发 HTML5 CSS3 移动 web 视频教程,前端web入门首选黑马程序员 一、参考资料 【前端Web开发HTML5CSS3移动web视频教程,前端web入门首选黑马程序员】 https://www.bilibili.com/video/BV1kM4y127Li/?p44&share_sourcecopy_web&vd…...

Markdown Viewer:浏览器中的终极Markdown渲染神器,让你告别单调预览

Markdown Viewer:浏览器中的终极Markdown渲染神器,让你告别单调预览 【免费下载链接】markdown-viewer Markdown Viewer / Browser Extension 项目地址: https://gitcode.com/gh_mirrors/ma/markdown-viewer 还在为Markdown文件的预览效果发愁吗&…...

如何用5分钟彻底解决BT下载速度慢的问题?终极Tracker列表指南

如何用5分钟彻底解决BT下载速度慢的问题?终极Tracker列表指南 【免费下载链接】trackerslist Updated list of public BitTorrent trackers 项目地址: https://gitcode.com/GitHub_Trending/tr/trackerslist 还在为BT下载速度慢如蜗牛而烦恼吗?每…...

SEATA分布式事务——AT模式云

简介 AI Agent 不仅仅是一个能聊天的机器人(如普通的 ChatGPT),而是一个能够感知环境、进行推理、自主决策并调用工具来完成特定任务的智能系统,更够完成更为复杂的AI场景需求。 AI Agent 功能 根据查阅的资料,agent的…...

从数据采集到回放验证:ADTF 适配 ROS 的 ADAS 测试实践胃

一、简化查询 1. 先看一下查询的例子 /// /// 账户获取服务 /// /// /// public class AccountGetService(AccountTable table, IShadowBuilder builder) { private readonly SqlSource _source new(builder.DataSource); private readonly IParamQuery_accountQuery b…...

Java中ThreadPoolExecutor 深度剖析

ThreadPoolExecutor 深度剖析(基于Java 21) 这是 JUC 中最核心、最复杂的并发组件之一。以下按维度逐一展开,辅以源码与图示。一、底层实现原理 1.1 核心控制字段:ctl ThreadPoolExecutor 用一个 AtomicInteger 类型的 ctl 字段同…...

OpenCV实战:SimpleBlobDetector参数调优全攻略(附完整代码)

OpenCV实战:SimpleBlobDetector参数调优全攻略(附完整代码) 在工业视觉检测和医学图像分析领域,斑点检测是一项基础但至关重要的任务。想象一下这样的场景:生产线上的零件表面缺陷检测、显微镜下的细胞计数、PCB板焊点…...

旧安卓手机别扔!手把手教你搭建个人隐私安全检测环境(Kali+Metasploit实战)

旧安卓设备重生计划:构建家庭隐私安全实验室的5个关键步骤 那部抽屉里积灰的旧安卓手机,或许是你提升数字安全意识的最佳教具。当科技媒体不断报道数据泄露事件时,大多数人依然对手机应用的权限滥用缺乏直观认知。本文将带你用退役设备搭建一…...

KDE桌面Mac化实战:从Launchpad到全局菜单的完整改造指南

1. 为什么要把KDE桌面改造成macOS风格? 作为一个长期使用Linux的老用户,我完全理解大家对macOS那种简洁优雅界面的向往。但说实话,macOS的封闭性总是让人感觉束手束脚。直到有一天我发现,原来用KDE Plasma可以完美复刻macOS的视觉…...

从Bulk CMOS到先进工艺:Sentaurus TCAD中几何结构与掺杂如何‘捏’出你的Ion和Ioff

从Bulk CMOS到先进工艺:Sentaurus TCAD中几何结构与掺杂如何‘捏’出你的Ion和Ioff 在半导体器件设计中,Ion(导通电流)和Ioff(关断电流)是衡量器件性能的两个关键指标。就像雕塑家通过调整黏土的形状和质地…...

探秘Text2Vec:智能文本处理的新利器

探秘Text2Vec:智能文本处理的新利器 【免费下载链接】text2vec Fast vectorization, topic modeling, distances and GloVe word embeddings in R. 项目地址: https://gitcode.com/gh_mirrors/tex/text2vec Text2Vec是一款强大的R语言文本处理工具包&#xf…...

AgentCPM-Report实战案例:Pixel Epic在跨境数据合规白皮书撰写中的应用

AgentCPM-Report实战案例:Pixel Epic在跨境数据合规白皮书撰写中的应用 1. 引言:当数据合规遇上像素冒险 跨境数据合规是当前企业出海面临的重要挑战之一。传统白皮书撰写需要耗费大量时间收集法规、分析案例、整理框架,而Pixel Epic这款基…...

STM32步进电机4轴控制源码(相对/绝对/回原点/梯形加减速运动控制 F103 F405版本)

STM32步进电机4轴控制源码,相对,绝对,回原点,梯形加减 STM32步进电机4轴控制源码,相对,绝对,回原点,梯形加减速,运动控制,两份源码,F103&#xff…...

嵌入式语音交互实战:基于树莓派4B与SYN6288的智能语音播报系统设计

1. 智能语音播报系统入门指南 想象一下,当你走进电梯时听到"请注意安全"的语音提示,或者在健身房跑步机上听到"当前速度5公里/小时"的播报,这些场景背后都离不开智能语音播报技术。今天我要分享的,是如何用树…...

7种高效连接方式全解析:php-amqplib连接RabbitMQ的终极指南

7种高效连接方式全解析:php-amqplib连接RabbitMQ的终极指南 【免费下载链接】php-amqplib The most widely used PHP client for RabbitMQ 项目地址: https://gitcode.com/gh_mirrors/ph/php-amqplib php-amqplib作为最广泛使用的PHP RabbitMQ客户端&#xf…...

Razer-macos核心组件深度剖析:设备管理器与动画系统

Razer-macos核心组件深度剖析:设备管理器与动画系统 【免费下载链接】razer-macos Color effects manager for Razer devices for macOS. Supports High Sierra (10.13) to Monterey (12.0). Made by the community, based on openrazer. 项目地址: https://gitco…...

如何快速上手Remax:5分钟创建你的第一个跨平台小程序

如何快速上手Remax:5分钟创建你的第一个跨平台小程序 【免费下载链接】remax 使用真正的 React 构建跨平台小程序 项目地址: https://gitcode.com/gh_mirrors/re/remax Remax是一个让开发者能够使用真正的React构建跨平台小程序的强大框架。通过Remax&#x…...

Pixel Epic · Wisdom Terminal 计算机视觉应用:YOLOv5目标检测模型协同优化案例

Pixel Epic Wisdom Terminal 计算机视觉应用:YOLOv5目标检测模型协同优化案例 1. 当大语言模型遇见计算机视觉 在安防监控室里,值班人员正盯着十几个屏幕,突然发现一个可疑身影。"把第三摄像头画面放大,看看那个人手里拿的…...