机器视觉技术与应用实战(BLOB分析)

news2025/1/16 5:14:50

我发现写blob分析(Binary Large Object)相应的处理函数的文章非常少。那就写一写关于blob分析相关的文章。

blob工具也叫做斑点工具,先对图像进行二值化,对图像中连通区域进行计算,计算几何特征。
BLOB分析功能: 1、图像分割 2、连通域分析 3、BLOB特征分析

图像分割: 允许BLOB分析将图像分割成两类:斑点和背景。当然我更愿意认为这个是其中的二值化起到了作用,通过 二值化将背景和斑点进行分离。这个要求物体和背景对比度比较好的情况,之前说过的,对比度其实更多反 映在灰度值之间的差距,物体的那部分的灰度值和背景的灰度值的差距非常大越好分离,如双峰直方图。双峰直方图类似如下:

BLOB里面有两种类型的阈值函数:硬阈值和软阈值。 

在visionpro里面同样有相应的处理方式:

 硬阈值:不允许有跨斑点边界的灰度值变化。硬阈值通常设置在两个峰值中间的低谷处。

 举个栗子:

原图:

灰度直方图+阈值线(紫色):

 

可以看到阈值几乎划在了背景和物体灰度值中间 

 于是得到BLOB处理后图(截图为了看到白色区域,特意截取大一点):灰度直方图为:0和255

 硬阈值的边缘灰度值是跳跃的,不存在过渡像素。如图是上面图的一部分:

硬阈值对于边界区域的像素的处理太粗暴了。于是乎,软阈值它来了!

软阈值:展现处理斑点边界区域的像素的灵活性,软阈值倾斜并覆盖一系列像素值。一旦处理,阈值范围内的像素被输出为加权像素。加权像素按照它在阈值范围内的值来计算斑点结果。以下是我设置的软阈值范围,低阈值和高阈值之间的阈值范围就是加权像素的区域,低于低阈值的统统设置为0,高于高阈值的统统 设置为255,区域内的像素进行加权,得到过渡灰度值。在这张图里面,我设置了低阈值为150,高阈值为 210。

结果如下:

 直方图是这样的(注意红色箭头指的地方),红色箭头的地方是有像素点分布的:

它的边缘是这样的:

 可以看到明显的过渡像素

对于过渡像素的求值,目前还没找到相应的详细计算方法,只能知道是用到了加权的方式统计的。

最后,如果是测量某一个区域的某一些值,blob分析可能会影响到准确性。blob分析在我所处的项目中,通常用于检测有无比较粗略的测量

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

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

相关文章

磁盘分区机制

lsblk查看分区 Linux分区 挂载的经典案例 1. 虚拟机增加磁盘 点击这里,看我的这篇文章操作 添加之后,需要重启系统,不重启在系统里看不到新硬盘哦 出来了,但还没有分区 2. 分区 还没有格式化 3. 格式化磁盘 4. 挂载 5. 卸载…

【Linux系统编程】环境变量详解

文章目录 1. 环境变量的基本概念2. 如何理解呢?(测试PATH)2.1 切入点1查看具体的环境变量原因剖析常见环境变量 2.2 切入点2给PATH环境变量添加新路径将我们自己的命令拷贝到PATH已有路径里面 2.3 切入点3 3. 显示所有环境变量4. 测试HOME5. …

Elasticsearch8 集群搭建(二)配置篇:(1)节点和集群配置

安装完Elasticsearch后,需要对其进行配置,包括以下几部分:节点和集群配置、系统配置、安全配置。 此篇记录节点和集群配置的内容,后续将更新系统配置和安全配置。 节点和集群配置: 通过编辑/usr/local/elasticsearc…

2024最新版Python3.12.1的新特性

2024最新版Python3.12.1的新特性 New Features followed by the latest version - Python 3.12.1 in 2024 By JacksonML Python 3.12.1最新版已经于2023年12月3日在python.org正式发布! 详细信息可见官网链接:https://www.python.org 作为2024年的最新…

新发现个上头的神仙写简历工具,分分钟惊掉你下巴!

你们在制作简历时,是不是基本只关注两件事:简历模板,还有基本信息的填写。 当你再次坐下来更新你的简历时,可能会发现自己不自觉地选择了那个“看起来最好看的模板”,填写基本信息,却没有深入思考如何使简历…

SpringMVC第一天

简介 SpringMVC技术与Servlet技术功能等同&#xff0c;均属于web层开发技术 SpringMVC是一种基于java实现的MVC模型的轻量级Web框架 优点 使用简单,开发便捷(相比于Servlet) 灵活性强 入门案例 第一步、导入SpringMVC与Servlet坐标 <?xml version"1.0" encod…

flink内存管理(二):MemorySegment的设计与实现:(1)架构、(2)管理堆内/外内存、(3)写入/读取内存、(4)垃圾清理器

文章目录 一. MemorySegment架构概览二. MemorySegment详解1.基于MemorySegment管理堆内存2.基于MemorySegment管理堆外内存3.基于Unsafe管理MemorySegment4.写入和读取内存数据5.创建MemoryCleaner垃圾清理器 在flink内存管理&#xff08;一&#xff09;中我们已经知道&#x…

四.Winform使用Webview2加载本地HTML页面并互相通信

Winform使用Webview2加载本地HTML页面并互相通信 往期目录本节目标核心代码实现HTML代码实现的窗体Demo2代码效果图 往期目录 往期相关文章目录 专栏目录 本节目标 实现刷新按钮点击 C# winform按钮可以调用C# winform代码显示到html上点击HTML按钮可以调用C# winform代码更…

Python schedule任务调度及其用法

如果需要执行更复杂的任务调度&#xff0c;则可使用 Python 提供的 sched 模块。该模块提供了 sched.scheduler 类&#xff0c;该类代表一个任务调度器。 sched.scheduler(timefunctime.monotonic, delayfunctime.sleep) 构造器支持两个参数&#xff1a; timefunc&#xff1a…

思迅商旗-loaddata-信息泄露-未公开Day漏洞复现

0x01阅读须知 本文章仅供参考&#xff0c;此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等&#xff08;包括但不限于&#xff09;进行检测或维护参考。本文章仅用于信息安全防御技术分享&#xff0c;因用于其他用途而产生不良后果,作者不承担任何法律责任&#…

比特币狂人引爆达沃斯论坛

点击查看TechubNews原文链接&#xff1a;比特币狂人引爆达沃斯论坛 比特币狂人、自称无政府资本主义者的阿根廷总统米莱在达沃斯的最新演讲引爆社交网络大讨论。 1 月 15 日&#xff0c;第 54 届世界经济论坛在瑞士阿尔卑斯山的达沃斯开幕。来自约 60 个国家首脑和跨国公司的领…

UE5 - Polycam扫描文件导入插件

Polycam是利用Gaussian Splatting进行3D重建的3D扫描相关软件&#xff0c;其对应有UE引擎的插件&#xff08;Plugin_XV3dGS&#xff09;可以把相关格式的文件导入到引擎&#xff1b; 首先Polycam的官网为&#xff1a;My Captures | Polycam 可以下载各种用户扫描文件&#xff…

Linux中的共享内存

定义&#xff1a; 共享内存允许两个或者多个进程共享物理内存的同一块区域&#xff08;通常被称为段&#xff09;。由于一个共享内存段会称为一个进程用户空间的一部分&#xff0c;因此这种 IPC 机制无需内核介入。所有需要做的就是让一个进程将数 据复制进共享内存中&#xff…

Mysql运维篇(三) MySQL数据库分库分表方案

一路走来&#xff0c;所有遇到的人&#xff0c;帮助过我的、伤害过我的都是朋友&#xff0c;没有一个是敌人&#xff0c;如有侵权请留言&#xff0c;我及时删除。 一、前言 关系型数据库本身比较容易成为系统瓶颈&#xff0c;单机存储容量、连接数、处理能力都有限。当单表的数…

Liunx系统和Window系统有什么区别

在信息技术世界里&#xff0c;操作系统扮演着至关重要的角色&#xff0c;它负责管理和控制计算机硬件与软件资源。Linux和Windows是市面上两个最流行的操作系统。接下来&#xff0c;我们将深入研究这两种操作系统的主要差异。 核心体系结构及源代码访问&#xff1a; 首先&#…

多线程-线程状态和线程安全(加锁-synchronized 关键字)

目录 1.线程状态 示例&#xff1a; 1.1线程状态和状态转移的意义 2.线程安全 2.1观察线程不安全 2.2线程不安全的原因 3.synchronized 关键字 - 监视器锁 monitor lock 3.1synchronized 的特性 1. 互斥 2.可重⼊ 应用示例&#xff1a; 3.2synchronized 使⽤⽰例 1.…

简单了解AJAX

文章目录 1、什么是AJAX2、AJAX快速入门3、Axios异步框架3.1、Axios 快速入门3.2、Axios 请求方式别名 1、什么是AJAX 概念&#xff1a;AJAX(Asynchronous JavaScript And XML)&#xff1a;异步的 JavaScript 和 XML AJAX作用&#xff1a; 与服务器进行数据交换&#xff1a;通…

【Unity学习笔记】New Input System 部分源码和测试用例补充

转载请注明出处&#xff1a;&#x1f517;https://blog.csdn.net/weixin_44013533/article/details/135630016 作者&#xff1a;CSDN|Ringleader| 主要参考&#xff1a; Unity官方Input System手册与API【Unity学习笔记】Unity TestRunner使用【Unity学习笔记】第十二 New Inp…

k8s资源介绍

Kubernetes架构图 Kubernetes系统用于管理分布式节点集群中的微服务或容器化应用程序&#xff0c;并且其提供了零停机时间部署、自动回滚、缩放和容器的自愈&#xff08;其中包括自动配置、自动重启、自动复制的高弹性基础设施&#xff0c;以及容器的自动缩放等&#xff09;等…

java黑马学习笔记

数组 变量存在栈中&#xff0c;变量值存放在堆中。 数组反转 public class test{public static void main(String[] args){//目标&#xff1a;完成数组反转int[] arr {10,20,30,40,50};for (int i 0,j arr.length - 1;i < j;i,j--){int tep arr[j]; //后一个值赋给临时…