Halcon Blob分析提取小光斑

news2024/11/25 20:45:51

文章目录

  • 算子
    • complement 返回一个区域的补集
    • select_region_point 选择包含指定像素的所有区域
    • intensity 计算灰度值的均值和偏差
  • 案例

算子

complement 返回一个区域的补集

complement(Region : RegionComplement : : )
	Region (输入对象):这指的是输入的一个或多个图像区域。这些区域通常是通过图像处理技术(如阈值处理、边缘检测等)从原图中提取出来的。
	RegionComplement (输出对象):这是指输入区域的补集区域。如果输入的“Region”是图像的一部分,那么“RegionComplement”就是除了这部分以外的图像其他部分。 

select_region_point 选择包含指定像素的所有区域

select_region_point(Regions : DestRegions : Row, Column : )
	Regions (输入对象):待检查的区域数组。这些区域是图像处理过程中识别出的一系列区域。
	DestRegions (输出对象):包含测试像素的所有区域数组。输出将是那些包含了由 Row 和 Column 参数指定位置的像素的所有区域。
	Row (输入控制):测试像素所在的行索引。这是一个整数类型的参数,默认值为 100。它指定了像素在图像中的垂直位置。
	Column (输入控制):测试像素所在的列索引。这也是一个整数类型的参数,默认值为 100。它指定了像素在图像中的水平位置。

intensity 计算灰度值的均值和偏差

intensity(Regions, Image : : : Mean, Deviation)
    Regions (输入对象):在此区域内计算特征。这些区域是从图像中分割出来的一部分或多部分,通常是感兴趣区域(ROI, Regions Of Interest)。
    Image (输入对象):单通道图像,通常是指灰度图像。它可以是多种类型的单通道图像,包括但不限于字节类型 (byte)、方向类型 (direction)、循环类型 (cyclic)、整型 (int1, int2, uint2, int4) 或浮点型 (real)Mean (输出控制):一个区域的平均灰度值。如果输入的 Regions 是一个数组,则 Mean 也会是一个数组,其中每个元素对应于输入区域数组中的一个区域的平均灰度值。
    Deviation (输出控制):区域内灰度值的标准偏差。与 Mean 类似,如果输入的 Regions 是多个区域,则 Deviation 也会是一个数组,其中每个元素对应于输入区域数组中的一个区域的灰度值标准偏差。

案例

在这里插入图片描述

* particle.hdev: Measurement of small particles
* 
dev_update_off ()
dev_close_window ()
dev_open_window (0, 0, 512, 512, 'black', WindowID)
set_display_font (WindowID, 14, 'mono', 'true', 'false')
read_image (Image, 'particle')
dev_display (Image)
dev_disp_text ('Original image', 'window', 12, 12, 'black', [], [])
dev_disp_text ('Press Run (F5) to continue', 'window', 'bottom', 'right', 'black', [], [])
stop ()
* 阈值处理
threshold (Image, Large, 110, 255)
* Dilate regions with a circular structuring element
* 膨胀
dilation_circle (Large, LargeDilation, 7.5)
dev_display (Image)
dev_set_draw ('margin')
dev_set_line_width (3)
dev_set_color ('red')
dev_display (LargeDilation)
dev_set_draw ('fill')
dev_disp_text ('Exclude large areas from processing', 'window', 12, 12, 'black', [], [])
dev_disp_text ('Press Run (F5) to continue', 'window', 'bottom', 'right', 'black', [], [])
stop ()
* Continue to calculate small regions
* Return the complement of a region
*获取补集
complement (LargeDilation, NotLarge)
*将原图-补集
reduce_domain (Image, NotLarge, ParticlesRed)
* 去除杂志
mean_image (ParticlesRed, Mean, 31, 31)
* Segment the image using a local threshold
*获取亮点阈值
dyn_threshold (ParticlesRed, Mean, SmallRaw, 3, 'light')
* 亮点进行开运算
opening_circle (SmallRaw, Small, 2.5)
* 连接亮点
connection (Small, SmallConnection)
dev_display (Image)
dev_set_colored (12)
dev_display (SmallConnection)
dev_disp_text ('Extracted small particles', 'window', 12, 12, 'black', [], [])
dev_disp_text ('Press Run (F5) to continue', 'window', 'bottom', 'right', 'black', [], [])
stop ()
* Continue to select several regions and to get information
dev_set_color ('green')
dev_display (Image)
dev_set_draw ('margin')
dev_display (SmallConnection)
Button := 1
* Define limits for the displayed message at the end of the while-loop.
MaxRow := 450
MaxColumn := 440
MinRow := 40
MinColumn := 100
while (Button == 1)
    dev_disp_text (['Select object with left mouse button','Right button to quit'], 'window', 12, 12, 'black', 'box_color', '#fce9d4dd')
    dev_set_color ('green')
    * 点击区域点
    get_mbutton (WindowID, Row, Column, Button)
    dev_display (Image)
    dev_display (SmallConnection)
    dev_set_color ('red')
    * 获取到选中的区域
    select_region_point (SmallConnection, SmallSingle, Row, Column)
    dev_display (SmallSingle)
    count_obj (SmallSingle, NumSingle)
    if (NumSingle == 1)
        * 计算平均灰度值和偏差
        intensity (SmallSingle, Image, MeanGray, DeviationGray)
        *获取区域面积大小
        area_center (SmallSingle, Area, Row, Column)
        * Limit the message so that it is displayed entirely inside the graphics window.
        if (Row > MaxRow)
            Row := MaxRow
        endif
        if (Column > MaxColumn)
            Column := MaxColumn
        endif
        if (Row < MinRow)
            Row := MinRow
        endif
        if (Column < MinColumn)
            Column := MinColumn
        endif
        dev_disp_text (['Area = ' + Area,'Intensity = ' + MeanGray$'.3'], 'image', Row + 10, Column - 90, 'black', 'box_color', '#fce9d4dd')
    endif
endwhile
dev_set_line_width (1)
dev_update_on ()

在这里插入图片描述

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

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

相关文章

[Linux] 软硬链接

软硬连接是两种链接方式,目的是通过使用一个已有的文件,在不进行拷贝的情况下,可以在不同的路径下访问同一份文件 软连接相当于快捷方式 硬连接相当于引用计数 软硬链接的目标也可以是软硬链接 软连接 指令 : ln -s 源文件 链接文件 软连接可链接文件夹 链接文件被删除后文件…

复杂网络基本概念(二)

一、集聚系数 节点i的集聚系数定义&#xff1a; 节点i的k个邻居节点之间实际存在的边数E和总的可能边数之比 所有节点的集聚系数的平均值 二、网络稀疏性与连通性 完全连接网络&#xff1a; 如果一个网络中任意两个节点之间都有来连边存在&#xff0c;则称其是一个完全连接…

探索 Python 装饰器的新境界:wrapt 库的神秘力量

文章目录 探索 Python 装饰器的新境界&#xff1a;wrapt 库的神秘力量背景&#xff1a;为何选择 wrapt&#xff1f;wrapt 是什么&#xff1f;如何安装 wrapt&#xff1f;简单的 wrapt 库函数使用方法创建简单装饰器保持元信息处理参数传递 场景应用&#xff1a;wrapt 的实际用例…

某知名国企面试题

引言 金九银十&#xff0c;求职热潮再度来袭。最近&#xff0c;有位同学去一家知名国企应聘&#xff0c;回来后带回了一套面试题。这套面试题非常典型&#xff0c;其中包含了许多供应链金融方面的典型问题。这些问题很有分享的价值&#xff0c;大家也可以先自己独立思考一下&a…

38 Spring

38 Spring 参考资料 Spring-全面详解&#xff08;学习总结&#xff09; 基本概念 Spring理念 : 使现有技术更加实用 . 本身就是一个大杂烩 , 整合现有的框架技术。 Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器&#xff08;框架&#xff09;。 IOC本质 IOC全…

【Redis】分布式(day12)

引入 在实际生产中&#xff0c;只部署一个Redis时&#xff0c;就会造成单点问题&#xff1a; 可用性问题&#xff0c;单个节点部署的Redis&#xff0c;如果此时该服务器挂了&#xff0c;那么意味着Redis整体的服务也就断掉了。性能/并发也是比较有限的。 为了避免单点问题的…

如何在UE5中创建加载屏幕(开场动画)?

第一步&#xff1a; 首先在虚幻商城安装好Async Loading Screen&#xff0c;并且在项目的插件中勾选好。 第二步&#xff1a; 确保准备好所需要的素材&#xff1a; 1&#xff09;开头的动画视频 2&#xff09;关卡加载图片 3&#xff09;准备至少两个关卡 第三步&#xff1a…

通信工程学习:什么是SPI串行外设接口

SPI&#xff1a;串行外设接口 SPI&#xff0c;即串行外设接口&#xff08;Serial Peripheral Interface&#xff09;&#xff0c;是一种由Motorola公司首先在其MC68HCXX系列处理器上定义的同步串行接口技术。SPI接口主要用于微控制器&#xff08;MCU&#xff09;与外部设备之间…

spring |Spring Security安全框架 —— 认证流程实现

文章目录 开头简介环境搭建入门使用1、认证1、实体类2、Controller层3、Service层3.1、接口3.2、实现类3.3、实现类&#xff1a;UserDetailsServiceImpl 4、Mapper层3、自定义token认证filter 注意事项小结 开头 Spring Security 官方网址&#xff1a;Spring Security官网 开…

leetcode 1027 最长等差数列 题目的思考

https://leetcode.cn/problems/longest-arithmetic-subsequence/ 如果序列是&#xff1a;3 0 3&#xff0c;枚举的公差是3 对于第一个数3&#xff0c;它的序列长度就是他自己3 对于第二个数0&#xff0c;它的序列长度就行它自己0 对于第三个数&#xff0c;它的序列长度应该是【…

【未知列名注入】

简介 在sql注入中&#xff0c;如果服务器过滤了column_name阻止我们获取列名&#xff0c;我们该如何绕过 一、union 绕过 使用union构造多个表&#xff0c;把数据表和构造的123表连接起来&#xff0c;我们看一下构造过程: 查询user表数据 select * from user;Union联合查询…

基于协同过滤的景区旅游可视化与景区推荐系统(自动爬虫,地点可换)

文章目录 有需要本项目的代码或文档以及全部资源&#xff0c;或者部署调试可以私信博主项目介绍过程展示项目移植每文一语 有需要本项目的代码或文档以及全部资源&#xff0c;或者部署调试可以私信博主 项目介绍 本项目是一个综合性的旅游景区数据管理与分析推荐系统,集成了用…

Qt:设置程序图标与主窗口背景图片

目录 设置程序图标&#xff1a; 设置主窗口背景图片&#xff1a; 设置程序图标&#xff1a; 在设置图标之前先准备一张ico图标&#xff0c;没有ico图标的可以准备一张图片&#xff0c;然后找一个在线的ico转换网站去转换一张ico文件出来。 然后打开项目文件所在的文件夹&am…

C语言 | Leetcode C语言题解之第467题环绕字符串中唯一的子字符串

题目&#xff1a; 题解&#xff1a; #define MAX(a, b) ((a) > (b) ? (a) : (b))int findSubstringInWraproundString(char * p) {int dp[26];int len strlen(p);memset(dp, 0, sizeof(dp));int k 0;for (int i 0; i < len; i) {if (i && (p[i] - p[i - 1] …

Spark高级用法-数据源的读取与写入

目录 数据读取 数据写入 总结 数据读取 读文件 read.json read.csv csv文件有两个部分构成 头部数据&#xff0c;也就是字段数据&#xff0c;行数数据 read.orc 读数据库 read.jdbc(jdbc连接地址,table表名,properties{user用户名,password密码,driver驱动信息}) 缺少连…

机器学习基础概念(3)

小小考一下大家前两节的内容(坏笑) 我们如何评判一个机器学习模型的性能呢&#xff1f; 通常是判断它的泛化能力&#xff08;对于未知数据的处理能力&#xff09; 那么对于泛化能力是否有一个标准&#xff0c;比如在未知的1万个数据中&#xff0c;泛化能力 模型一90% >…

【分布式事务-02】分布式事务seata的安装下载与环境搭建

redis系列整体栏目 内容链接地址【一】分布式事务之2pc两阶段提交https://zhenghuisheng.blog.csdn.net/article/details/142406325【一】分布式事务seata的安装下载与环境搭建https://zhenghuisheng.blog.csdn.net/article/details/142893117 分布式事务seata的安装下载与环境…

java服务器技术

1. Java EE&#xff08;Java Enterprise Edition&#xff09; Java EE是一套为企业级应用提供的完整解决方案&#xff0c;它包括了Java Servlet、JSP&#xff08;JavaServer Pages&#xff09;、EJB&#xff08;Enterprise JavaBeans&#xff09;、JPA&#xff08;Java Persist…

【风力发电】基于模糊逻辑控制的风电系统MPPT

摘要 本文基于模糊逻辑控制 (Fuzzy Logic Control, FLC) 实现了风力发电系统的最大功率点追踪 (MPPT)。FLC 由于其不依赖于精确数学模型的特点&#xff0c;能够有效应对风速变化导致的非线性和不确定性问题。通过对风速和功率的模糊化处理&#xff0c;该方法提高了风电系统的功…

ros1:使用C++编写ros程序,获取IMU数据,使用gazebo仿真

cd catkin_ws/src/catkin_create_pkg imu_pkg roscpp rospy sensor_msgs在src目录下创建&#xff0c;imu_node.cpp #include "ros/ros.h" #include "sensor_msgs/Imu.h" #include "tf/tf.h"void IMUCallback(sensor_msgs::Imu msg){if(msg.orien…