HalconLen5-定位特征步步逼近

news2024/11/24 9:27:16
read_image(Image, 'C:/Users/86173/Desktop/test/2.png')
get_image_size(Image, Width, Height)

dev_close_window()
dev_open_window(0, 0, Width, Height, 'black', WindowHandle)

dev_display(Image)

threshold(Image, Region, 128, 255) //阈值处理

connection(Region, ConnectedRegions)//分块函数(将不连接的区域或对象连接成一个或多个连通区域的过程)

select_shape(ConnectedRegions, SelectedRegions, 'rectangularity', 'and', 0.9, 1) //根据形状特征从连接区域中选择特定区域的函数
select_shape(SelectedRegions, SelectedRegions1, 'area', 'and', 7500, 99999)

fill_up(SelectedRegions1, RegionFillUp)

reduce_domain(Image, RegionFillUp, ImageReduced) //缩小给定图像的定义域 到指定的区域

threshold(ImageReduced, Region1, 0, 130) 

threshold_sub_pix(ImageReduced, Border, 138) //筛选灰度值小于108的像素并用亚像素点标记

select_contours_xld(Border, SelectedContours, 'contour_length', 30, 50, -0.5, 0.5)

count_obj(SelectedContours, Number) //计数器

gen_region_contour_xld(SelectedContours, Region2, 'filled') //从二值图像或者区域中生成亚像素点边缘轮廓

reduce_domain(ImageReduced, Region2, ImageReduced1) //抠图函数(减少图像处理操作作用区域)从图像中提取感兴趣区域(ROI)并对其进行更详细的分析


在这里插入图片描述

**阈值处理 (Thresholding)** 是图像处理中一项基本技术,用于将图像分割为不同的区域。在 HALCON 中,阈值处理函数 `threshold` 用于根据像素强度将图像中的像素分类为两类:

* **目标像素:**强度高于或等于阈值的像素。
* **背景像素:**强度低于阈值的像素。

**参数:**

* **Image:**输入图像。
* **Result:**输出二值图像,其中目标像素设置为 1,背景像素设置为 0* **MinValue:**阈值。

**用法示例:**


image := ReadImage(...);
threshold := 128;
result := Threshold(image, MinValue := threshold);


这将创建一个二值图像 `result`,其中像素强度高于或等于 `threshold` 的像素设置为 1,其他像素设置为 0**阈值处理类型:**

HALCON 提供了几种不同的阈值处理类型:

* **MinValue:**如上所述,根据给定的最小值进行阈值处理。
* **MaxValue:**根据给定的最大值进行阈值处理。
* **Otsu:**使用 Otsu 算法自动确定阈值。
* **Hysteresis:**使用滞后阈值处理,其中一个阈值用于识别目标区域,另一个阈值用于识别边界区域。
* **Adaptive:**根据图像的局部特征动态调整阈值。

**应用:**

阈值处理在机器视觉中广泛用于:

* 分割图像中的对象。
* 提取图像中的特征。
* 消除图像噪声。
* 增强对比度。

通过选择合适的阈值处理类型和参数,可以优化图像处理结果以满足特定应用需求。
**连接 (Connection)** 在 HALCON 中指的是将不连接的区域或对象连接成一个或多个连通区域的过程。它通常用于图像处理和分析中,以简化图像数据并提取有意义的信息。

**函数:**

HALCON 提供了几个用于连接的函数,包括:

* **Connection (Conn)**将图像中所有连接的区域标记为不同的值。
* **SelectShape (SelShape)**根据形状特征(例如面积、周长、形状系数等)选择连接的区域。
* **RegionGrowing (RegGrow)**根据相似性标准(例如强度、颜色等)将相邻像素连接成区域。

**参数:**

连接函数通常具有以下参数:

* **Image:**输入图像。
* **Result:**输出图像,其中连接的区域已标记或选择。
* **Connectivity:**指定连接的类型,例如 4 邻域或 8 邻域。
* **Select:**布尔型参数,指定是否选择符合特定标准的连接区域。
* **Criterion:**用于选择连接区域的形状或相似性标准。

**用法示例:**

image := ReadImage(...);
connectivity := 8;
result := Connection(image, Connectivity := connectivity);


这将连接 `image` 中所有 8 邻域连接的区域,并将它们标记为不同的值存储在 `result` 中。

**应用:**

连接在图像处理和分析中具有广泛的应用,包括:

* 分割图像中的对象。
* 提取图像中的连通组件(例如文本行、连通区域等)。
* 分析图像中的形状和模式。
* 减少图像噪声和杂散像素。

通过选择合适的连接类型和参数,可以优化图像处理结果以满足特定应用需求。
**SelectShape** 是 HALCON 中一个用于根据形状特征从连接区域中选择特定区域的函数。它通常用于图像处理和分析中,以提取感兴趣的区域或对象。

**函数:**


SelectShape(Image : Image, SelectedImage : Image, ShapeType : ShapeType, Criterion : Criterion, Min, Max)


**参数:**

* **Image:**输入图像,其中连接区域已经通过 `Connection` 函数标记。
* **SelectedImage:**输出图像,其中满足指定形状特征的区域被选择(标记为 1),其他区域被标记为 0* **ShapeType:**指定要使用的形状特征,例如:
    * `"area"`:面积
    * `"perimeter"`:周长
    * `"circularity"`:圆度
    * `"rectangularity"`:矩形度
* **Criterion:**指定选择标准,例如:
    * `"and"`:同时满足最小值和最大值条件
    * `"or"`:满足最小值或最大值条件之一
* **Min:**最小形状特征值。
* **Max:**最大形状特征值。

**用法示例:**


image := ReadImage(...);
connectivity := 8;
connected_regions := Connection(image, Connectivity := connectivity);
selected_regions := SelectShape(connected_regions, SelectedImage, ShapeType := "area", Criterion := "and", 

这将从 `connected_regions` 中选择面积在 100500 之间的连接区域,并将它们标记在 `selected_regions` 中。

**应用:**

`SelectShape` 在图像处理和分析中具有广泛的应用,包括:

* 提取特定形状或大小的物体。
* 分析图像中的形状分布。
* 分割图像中的文本行或其他连通组件。
* 识别和计数图像中的特定特征,例如圆形、矩形等。

通过选择合适的形状特征和选择标准,可以优化图像处理结果以满足特定应用需求。
**ReduceDomain** 是 HALCON 中一个用于减少图像处理操作作用区域的函数。它通常用于图像处理和分析中,以优化处理速度并提高结果精度。

**函数:**

ReduceDomain(Image : Image, Domain : Domain, ReducedImage : Image)

**参数:**

* **Image:**输入图像。
* **Domain:**指定图像中要处理的区域,可以是矩形、椭圆或多边形。
* **ReducedImage:**输出图像,其中只处理了指定区域内的像素,区域外的像素保持不变。

**用法示例:**

image := ReadImage(...);
domain := Rectangle2(100, 100, 200, 200);
reduced_image := ReduceDomain(image, Domain := domain);

这将创建一个只处理图像中 100200 像素宽和高的矩形区域的 `reduced_image`。

**应用:**

`ReduceDomain` 在图像处理和分析中具有广泛的应用,包括:

* 限制图像处理操作的区域,以提高处理速度和精度。
* 从图像中提取感兴趣区域(ROI)并对其进行更详细的分析。
* 消除图像边缘或其他不需要处理的区域的影响。
* 在图像的不同部分执行不同的处理操作。

通过定义合适的域,可以优化图像处理算法并获得更好的结果。
**ThresholdSubPix** 是 HALCON 中一个用于执行亚像素阈值化的函数。它通常用于图像处理和分析中,以更精确地分割图像中的对象或区域。

**函数:**


ThresholdSubPix(Image : Image, Thresh : double, ThreshSubPix : double, Inverted : bool, Result : Image)


**参数:**

* **Image:**输入图像。
* **Thresh:**主阈值。
* **ThreshSubPix:**亚像素阈值。
* **Inverted:**如果为 true,则反转阈值(将大于阈值的像素标记为 1)。
* **Result:**输出图像,其中像素被二值化为 01,具体取决于它们是否满足阈值条件。

**用法示例:**


image := ReadImage(...);
thresh := 128;
thresh_sub_pix := 0.5;
result := ThresholdSubPix(image, Thresh := thresh, ThreshSubPix := thresh_sub_pix, Inverted := false);


这将创建一个二值图像 `result`,其中像素值大于或等于 128.5 被标记为 1,否则标记为 0**应用:**

`ThresholdSubPix` 在图像处理和分析中具有广泛的应用,包括:

* 提取图像中的对象或区域,具有更高的精度。
* 分割具有平滑边缘或渐进变化的图像。
* 提高图像处理算法的鲁棒性,使其对噪声和光照变化不那么敏感。
* 检测图像中的细小特征或细节。

通过使用亚像素阈值化,可以获得比传统阈值化更精确和可靠的结果。
**CountObj** 是 HALCON 中一个用于计算图像中连通区域数量的函数。它通常用于图像处理和分析中,以检测和计数图像中的对象或区域。

**函数:**


CountObj(Regions : Region, Connected : int, Result : integer)


**参数:**

* **Regions:**输入区域。
* **Connected:**连通性类型,可以是 48,分别表示 4-连通或 8-连通。
* **Result:**输出变量,其中存储检测到的对象数量。

**用法示例:**

image := ReadImage(...);
regions := BinarizeImage(image, Thresh := 128);
num_objects := CountObj(Regions := regions, Connected := 8);


这将创建一个 `num_objects` 变量,其中存储图像中检测到的 8-连通对象的总数。

**应用:**

`CountObj` 在图像处理和分析中具有广泛的应用,包括:

* 检测和计数图像中的对象或区域。
* 分析图像的连通性。
* 提取图像中对象的统计信息。
* 作为其他图像处理算法(例如对象标记或测量)的输入。

通过使用 `CountObj`,可以轻松高效地确定图像中连通区域的数量,这对于各种应用非常有用。

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

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

相关文章

人事管理软件全解析:高效团队管理的必备利器

本文为您详细介绍六款备受推崇的人力资源管理系统有:Zoho People、SAP SuccessFactors、Workday、Zenefits、BambooHR、TalentSoft。 一、Zoho People Zoho People 是一款全球领先的人事管理软件,以其全面的功能覆盖、出色的用户体验及高度的定制化能力…

02_Fixture定位,Caliper卡尺工具,几何学工具

Fixture定位工具 需求: 测量工件的尺寸 使用Caliper(卡尺)工具 这个时候需要借助Fixture工具 VisionPro中的图像空间 “” 图像的当前空间,即CogImage中的“SelectedSpaceName”表示的名字空间 “#” 像素空间,即坐标原点为图片左上角的坐标空间&am…

【模板自取】项目管理必会的思维分析工具之5W2H分析法

5W2H法是二战中美国陆军兵器修理部首创。简单、方便,易于理解、使用,广泛用于项目管理和思维分析等活动终,对于决策和执行性的活动措施也非常有帮助,也有助于弥补考虑问题的疏漏。产品管理、项目管理中,5W2H法也广泛应…

原子的内部结构

原子非常神奇,花时间思考它是非常有价值的。尽管传统的太阳系示意图存在致命的缺点,但我们还是可以局部应用于原子。 首先,原子与太阳系具有相似性一原子的中心质量大,外部质量小。我们用最简单的氢原子做分析,氢原子…

工作流JBPM系统数据库表介绍

文章目录 ☃️4.1 建表☃️4.2 数据库逻辑关系4.2.1 资源库与运行时的表4.2.2 历史数据表 ☃️4.3 表结构☃️4.4 流程操作与数表交互说明 ☃️4.1 建表 该系统自带18张表,用于支撑该系统的逻辑与流程业务; 建表语句如下: create database…

ROS实现无人驾驶控制算法(一)——pure pursuit

引言 对于导航系统来说,在规划好全局路径后,使机器人根据路径行驶这部分被称为轨迹跟踪。轨迹跟踪主要分为两类:基于几何追踪的方法和基于模型预测的方法。而pure pursuit算法就是最基本的基于几何的控制算法,因其鲁棒性高&#…

bonding原理分析和问题排查

bonding原理 发送端: 使用网卡bond3模式(广播模式BOND_MODE_BROADCAST)将报文从两个网卡同时发出,无需修改报文。 接收端: 根据发送节点时间的链路通断状态,接收端设置一条线路为活动线,另一条…

yolov7模型输出层预测方法解读

本文从代码的角度分析模型训练阶段输出层的预测包括以下几个方面: 标注数据(下文统称targets)的正样本分配策略,代码实现位于find_3_positive。候选框的生成,会介绍输出层的预测值、GT、grid、 anchor之间的联系损失函…

操作系统-一个学习能力的新高度

目录 一、目标二、计划三、完成情况四、提升改进(最少3点)五、意外之喜(最少2点)六、总结 一、目标 通过考试,当然这是眼前目标;通过对知识的学习,补上在计算机中那些透明的东西,从而让知识可以按照逻辑一层一层的构建知识大厦&a…

鸿蒙入门07-Blank组件

空白填充组件 在容器 主轴方向 上 空白填充组件具有自动填充空余部分的能力 注意 : 仅在父组件为 Row 或者 Column 的时候有效 注意 : 不能使用通用属性修饰 参数 参数名 参数类型 是否必填 默认值 参数描述 min number | string 否 …

就业班 第三阶段(nginx) 2401--4.17 day1 nginx1

负载均衡集群 1、集群是什么? 1 集群(cluster)技术是一种较新的技术,通过集群技术,可以在付出较低成本的情况下获得在性能、可靠性、灵活性方面的相对较高的收益,其任务调度则是集群系统中的核心技术。 …

【python】描述性统计计算偏斜度和峭度

文章目录 1.编写计算偏斜度和峭度的函数。并用自己编写的函数计算课本23页的习题1.5数据的偏斜度和峭度。2.从1.5数据中随机抽取2个容量为20的样本,分别计算它们的平均数和标准差3.请绘制给定数据的频率分布直方图,计算数据的均值、标准差、偏斜度和峭度…

Linux LVM 逻辑卷管理

Logical Volume Manager,逻辑卷管理 能够在保持现有数据不变的情况下动态调整磁盘容量,从而提高磁盘管理的灵活性/boot分区用于存放引导文件,不能基于LVM创建 三大概念: 物理卷PV基于硬盘或分区设备创建而来,生成N多…

抖音小店类目怎么选?新手开店这几个类目别碰!

大家好,我是电商笨笨熊 刚进入抖音小店,一定不要着急选品,而是先选择适合自己的类目。 类目决定抖店未来的发展方向,类目不对,努力白费! 今天我们就来聊聊新手做抖店该如何正确挑选合适的类目。 新手进入…

微信投票活动制作步骤是什么

随着社交媒体的不断发展,微信已成为人们生活中不可或缺的一部分。而微信投票活动,作为一种新颖、有趣的互动方式,正逐渐受到越来越多企业和个人的青睐。那么,如何制作一场成功的微信投票活动呢?今天,就让我…

JavaSE:继承 多态

继承 继承的本质 子类能够使用父类的方法和变量 使用场景:代码复用 在一个类中实现了一个很复杂的方法,给一个新类重新实现这个方法,我们直接继承即可 public class Student {public String sno;public void study() {System.out.printl…

多个微信如何自动化管理?

01 批量自动加好友 微信私域管理系统可以批量导入客户号码或微信号,设置多个号同步加好友任务。这一功能极大地减轻了手动添加好友的繁琐操作,避免因操作过多导致频繁而封号。 02 机器人自动回复 在系统上可以设置自动通过好友、通过好友后自动回复以…

物联网在工业中的应用是什么?——青创智通

工业物联网解决方案-工业IOT-青创智通 物联网在工业中的应用已经日益广泛,它为企业带来了前所未有的机会和挑战。物联网技术通过连接各种设备和系统,实现了数据的实时采集、分析和优化,从而提高了生产效率、降低了成本并提升了企业的竞争力。…

Nextjs使用recoil遇到的报错

Expectation Violation: Duplicate atom key “userInfo”. This is a FATAL ERROR in production. But it is safe to ignore this warning if it occurred because of hot module replacement. 可能在服务端和客户端都运行导致重复声明 可在 _app.tsx / _app.jsx 入口页 将r…

预选小标题

海岛,广东小岛 汕头 南澳岛(推荐) 距离东凤镇 500公里 珠海 需要坐船出海, 到达珠海码头 75公里 东澳岛, 桂山岛 海岛基本都差不多 阳江市海陵岛 可以赶海 距离东凤镇 240公里 江门 川岛, 下川岛 可下海 距离东凤镇 150公里 山林丹霞地貌 韶关 丹霞景区, 韶石景区,巴寨景…