halcon之Blob分析实战

2023-11-11

Blob分析(Blob Analysis)

在计算机视觉中的Blob是指图像中的具有相似颜色、纹理等特征所组成的一块连通区域。Blob分析(Blob Analysis)是对图像中相同像素的连通域进行分析(该连通域称为Blob)。其过程其实就是将图像进行二值化,分割得到前景和背景,然后进行连通区域检测,从而得到Blob块的过程
举例来说,假如现在有一块刚生产出来的玻璃,表面非常光滑,平整。如果这块玻璃上面没有瑕疵,那么,我们是检测不到“灰度突变”的;相反,如果在玻璃生产线上,由于种种原因,造成了玻璃上面有一个凸起的小泡、有一块黑斑、有一点裂缝,那么,我们就能在这块玻璃上面检测到纹理,经二值化(Binary Thresholding)处理后的图像中色斑可认为是blob。而这些部分,就是生产过程中造成的瑕疵,这个过程,就是Blob分析。

适用范围

针对二维目标图像和高对比度图像,适用于有无检测和缺陷检测。常用于二维目标图像、高对比度图像、存在/缺席检测、数值范围和旋转不变性需求。

显然,纺织品的瑕疵检测,玻璃的瑕疵检测,机械零件表面缺陷检测,可乐瓶缺陷检测,药品胶囊缺陷检测等很多场合都会用到blob分析

另一方面,Blob分析并不适用于以下图像:

1.低对比度图像;

2.必要的图像特征不能用2个灰度级描述; ·

3.按照模版检测 (图形检测需求)

主要处理技术

Blob分析主要内容包括但不限于以下几点:

(1)图像分割:将图像中的目标和背景分离。

(2)去噪:消除或减弱噪声对目标的干扰。

(3)场景描述:对目标之间的拓扑关系进行描述。

(4)特征量计算:计算目标的2-D形状特征。


 

实例

该实例是打开相机,寻找一个圆形物体,并显示像素坐标

open_framegrabber ('DirectShow', 1, 1, 0, 0, 0, 0, 'default', 8, 'rgb', -1, 'false', '[0] yuv (640x480)', '[0] Lenovo EasyCamera', 0, -1, AcqHandle)
set_framegrabber_param (AcqHandle, 'brightness', 38)
set_framegrabber_param (AcqHandle, 'contrast', 45)
grab_image_start (AcqHandle, -1)
dev_close_window ()
dev_open_window (0, 0, 728, 512, 'black', WindowID)
while (true)
    grab_image_async (Image, AcqHandle, -1)
    * Image Acquisition 01: Do something
    rgb1_to_gray (Image, GrayImage)
  threshold (GrayImage, Regions, 87, 176)
* erosion_circle (Regions, RegionErosion, 0.5)
   opening_circle (Regions, RegionOpening, 20.5)
   fill_up (RegionOpening, RegionFillUp)
   connection (RegionFillUp, ConnectedRegions)  
   select_shape (ConnectedRegions, SelectedRegions, ['area','circularity'], 'and', [11637.2,0.65413], [13584.1,0.77655])
   area_center (SelectedRegions, Area, Row, Column)
   disp_message (WindowID, 'Area: ' + Area, 'window', Row, Column, 'yellow', 'false')
endwhile
close_framegrabber (AcqHandle)

 

参考:

https://blog.csdn.net/Gavinmiaoc/article/details/79407685

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

halcon之Blob分析实战 的相关文章

  • halcon 获取XLD亚像素的测量距离

    read image span class token punctuation span Image span class token string 39 F xue xi 1 png 39 span span class token pu
  • Halcon齿轮测量

    Halcon齿轮测量 xff08 Halcon学习笔记 xff09 齿轮灰度图像如下 xff1a Halcon齿轮测量设计流程 首先进行阈值分割并利用面积特征选取出齿轮部分 xff1a 创建圆的XLD轮廓 xff1a 进行尺寸测量 xff1
  • 【Halcon】新建程序 读取图片 路径设置

    文章目录 1 新建程序 2 读取一张图片 3 图片路径 4 图片格式读取报错 5 快速添加 绝对路径 1 新建程序 点击新程序图标 即可新建 程序另存为 会弹出保存路径 2 读取一张图片 span class token function
  • 【Halcon】找到设备上的 标识牌

    如图 找到设备上的 标识牌 标识牌最明显的特征是比其他区域亮 二值化选择出亮区域 再通过面积选择出目标区域 先显示图片 span class token operator span 获取图片的大小 span class token func
  • halcon中相似变换、仿射变换、投影变换的区别以及应用方式和例程

    在机器视觉系统中 xff0c 镜头是重要成像部件之一 xff0c 而基于小孔成像原理的工业镜头往往会产生透视畸变现象 xff0c 如何校正畸变是进行图像分析的前提 xff0c 这其中就会用到投影变换 xff0c 也是几何变换的一种 除此之外
  • Halcon相机标定

    相机标定 相机标定的概念 相机的畸变 相机位置和被拍摄物体位姿关系产生的误差 透镜和成像平面 CMOS 不完全平行 镜头和被拍摄物体不完全平行 标定板 相机标定过程 相机标定的概念 在图像测量过程以及机器视觉应用中 为确定空间物体表面某点的
  • halcon 与PLC串口通信解决方案

    OpSystem environment OS if OpSystem Windows NT open serial COM1 SerialHandle else open serial dev tty SerialHandle endif
  • 【QT】Halcon与VS的联合编程2

    1 Halcon代码的导出 导出为C 语言 进行机器视觉应用 在halcon界面的菜单栏项上选择 文件 导出 界面如下 导出之后 在上述导出文件的路径下 你就可以看到程序了 此时这个程序就和halcon没有关系了 就是独立的cpp文件了 2
  • C# 联合Halcon开发的完整项目案例(三套完整源码)附下载连接

    C 联合Halcon开发的完整项目案例 三套完整源码 点我下载三套项目源码 1 C 联合Halcon开发的程序 一整套源码 相机点胶定位 图像采集 数据查询相机间通讯具体情况如下图所示 案例注释详细 方便二次开发 2 C Halcon Vi
  • Halcon仿射变换图片(旋转、缩放、平移)

    一 实验要求 把图片中的书摆正 二 实现代码 仅旋转 旋转变换 read image Image C Users 86159 Pictures Saved Pictures 1作业图片 5 2 1 jpg dev close window
  • 【halcon】亚像素轮廓XLD

    XLD eXtended Line Descriptions XLD其实就是指的亚像素轮廓 如何理解亚像素 上一篇 halcon入门小技巧 提到的 threshold Image Region 128 255 这个呢 是给了一个灰度的范围
  • Halcon Qt 环境一次性配置

    新建 halcon pri文件 halcon pri 内容 INCLUDEPATH C Program Files MVTec HALCON 20 11 Steady include INCLUDEPATH C Program Files
  • Halcon-表面检测-----裂纹检测

    对应示例程序 detect mura defects blur hdev 目标 实例实现LCD上有很多污点干扰下 检测LCD的印痕检测 思路为 对LCD图像进行拆分 提取RGB三个分量 对B分量进行处理 将其转换为频域内图像 并对其进行高斯
  • Halcon三维模型预处理(1):调平的三大手法

    面结构光拍摄生成的点云模型 往往相对系统坐标系是有角度的 首先讲一下调平的目的 1 为接下来的预处理切除背景面做准备 3 不做调平 后续处理会很麻烦 因为不清楚坐标系在平台的为位置 2 对于无序抓取项目 平台相对相机可能是有角度的 将抓取平
  • QT6+Halcon

    2020年12月8日 Qt公司正式发布了Qt 6 0 这一软件开发平台全新的主要版本 Qt 6 0 已被重新设计为面向未来 以生产力为重点的基础平台 QT迎来一个新时代 Qt Halcon这种组合在机器视觉方面应用非常广泛 一 Qt6全新理
  • Halcon极坐标变换检测缺陷

    一 原图 二 通过极性变换拉直 三 检测缺陷 This example checks bottle necks for defects First the bottle is detected with basic morphology e
  • 调用halcon函数时的错误处理

    注 以下材料来自halcon帮助文档 因水平有限 难免有误 欢迎指正 0 概述 在遇到一个运行时错误时 HALCON C 会以默认的方式给出错误信息 并终止程序 然而 在某些情况下 我们并不希望按照这样的规则来处理错误 例如 当一个程序允许
  • 【四】3D Object Model之创建Creation——read_object_model_3d()算子

    欢迎来到本博客 Halcon算子太多 学习查找都没有系统的学习查找路径 本专栏主要分享Halcon各类算子含义及用法 有时间会更新具体案例 具体食用方式 可以点击本专栏 Halcon算子快速查找 gt 搜索你要查询的算子名称 或者点击Hal
  • haclcon实现图像处理的傅里叶变换

    dev open file dialog read image default default Selection read image Image Selection mean image Image ImageMean 9 9 gaus
  • 无法加载 DLL“halcon”: 找不到指定的模块。 (异常来自 HRESULT:0x8007007E)

    将项目拷贝到没有安装halcon的电脑上 出现标题所示异常 参考文章 https www 51halcon com thread 997 1 1 html 我的解决办法是将halcon dll 文件拷贝到 bin debug目录下

随机推荐

  • 嵌入式软件开发

  • vue element checkbox多选框 多组联动数据嵌套多选、单选实际应用

    先看我最近项目中要实现的功能 点击 干部管理组 员工管理组 与下属员工复选框实现联动 后台返回的数据结构大概是这样的 title 干部 rows id 1 name 张三 id 2 name 张四 title 员工 rows id 3 na
  • bean的生命周期分析(三)

    目录 二 全流程梳理 2 6 创建bean 2 6 1 createBean 2 6 2 resolveBeanClass 2 6 3 prepareMethodOverrides 2 6 4 resolveBeforeInstantiat
  • 【闲谈】对于华为提出的“端云协同”渲染模式的一些看法

    本帖的主要内容 是发表一些对于华为 端云协同 的顾虑 端云协同是好事 我们本地算力可以云化 本地近乎走瘦终端路线 但这就会引发问题 这将大大增加运营商的网络传输流量业务 所以宽带套餐应该会又有变革 那不得不说一些现实点的状况 一 家用宽带可
  • sqli-labs:less-28(过滤了union和select)

    div div
  • C++——#ifndef和#ifdef宏定义的使用及作用介绍

    建议结合以下博客理解 头文件重复引用 https blog csdn net shenlanzifa article details 21071443 ifndef和 ifdef都是一种宏定义判断 作用是防止多重定义 ifndef是if n
  • element-plus 表单验证

    表单验证是使用率比较高的 和之前element版本也有些差别
  • 科技风UI除了蓝色,还有什么配色选择?

    今年做了一年的科技风 看到蓝色也是甚是觉得审美疲劳 在同类产品中体现出差异性也比较困难 寻思着除了蓝色 就没有别的配色选择了吗 通过对科技类设计的搜集 总结了科技风产品的配色文章参考 尽管我今年对蓝色够够了 但还是要分析下它作为FUI首选配
  • windows下,unity项目突然无法打开的挽救办法

    情景 项目在某次关机后就再也无法通过unity正常打开了 换了机器和unity版本也依然不行 如果你没做存档想必这是个令人非常崩溃的事情 但还有一种挽救的办法 至少是一种可能挽救的办法 那就是使用其他平台的unity打开项目 unity有w
  • 【Python网络蜘蛛】基础 - 多线程和多进程的基本原理

    文章目录 多线程和多进程的基本原理 多线程的含义 并发和并行 Python中的多线程和多进程 多线程和多进程的基本原理 在编写爬虫程序的时候 为了提高爬取效率 我们可能会同时运行多个爬虫任务 其中同样涉及多进程和多线程 多线程的含义 先了解
  • 面试官:为什么MySQL的索引要使用B+树,而不是其它树?比如B树?

    点击上方 Java之间 选择 置顶或者星标 你关注的就是我关心的 来源 https dwz cn exC8JdQS 上一篇 InnoDB的一棵B 树可以存放多少行数据 答案 约2千万 为什么是这么多 因为这是可以算出来的 要搞清楚这个问题
  • pandas创建与保存(导入与导出)dataframe

    文章目录 一 创建Dataframe 1 创建空dataframe 2 从list 创建dataframe 把list当做一列 把list当做一行 3 从 dict key value 创建dataframe 4 从 CSV 创建dataf
  • 布局数据存储,中国电子云意在何为?

    数据存储市场的未来在哪里 答案毋庸置疑是 云端 著名咨询机构Wikibon曾经做过一项统计 将全球三大云服务商的数据存储营收与传统存储厂商的营收进行对比 发现云服务商的数据存储业务规模已然赶上传统存储厂商 这揭示出一个不可阻挡的趋势 即随着
  • 线性回归算法(二)-- 最优解与损失函数

    介绍 要理解最优解和损失函数 我们需要先弄明白什么是误差 以简单线性回归为例 如下图所示 青色数据样本为真实值 y y y 直线上同一 x x x位置的红色样本点为预测值
  • qt操作第三方软件

    QT控制第三方软件方法 背景需求 实现思路 获取句柄方法 QT通过获取的信息操作 例子 控件ID为0或者控件ID和操作句柄相同怎么办 得到窗体x y height width 模拟键盘鼠标操作 附录 键值对照表 背景需求 通过前辈们写的软体
  • Shell--基础--06--传递参数

    Shell 基础 06 传递参数 1 介绍 我们可以在执行 Shell 脚本时 向脚本传递参数 1 1 脚本内获取参数的格式 格式为 n n 代表一个数字 0 执行的文件名 1 为执行脚本的第一个参数 2 为执行脚本的第二个参数 以此类推
  • AI时代,重新理解阿里云

    如果说 在数字化时代 阿里云给外界的标签是基于算力 数据等要素的基建角色 那么 在如今的智能化时代 基于自身强大的云计算能力和长期以往的AI技术积累 它的这种底座底色显然再一次被夯实 彰显 作者 皮爷 出品 产业家 宜昌城东大道 左侧是中国
  • DirectX编程:利用 DirectSound 录音

    DirectX编程 利用 DirectSound 录音 转载 http www cnblogs com stg609 archive 2008 10 24 1318931 html 花了一阵子 把DirectX安装后自带的帮助文件中的那部分
  • ES时间分组统计查询

    创建索引 PUT test 索引结构 PUT test mapping properties insertTime type date id type text fields keyword type keyword ignore abov
  • halcon之Blob分析实战

    Blob分析 Blob Analysis 在计算机视觉中的Blob是指图像中的具有相似颜色 纹理等特征所组成的一块连通区域 Blob分析 Blob Analysis 是对图像中相同像素的连通域进行分析 该连通域称为Blob 其过程其实就是将