halcon中阈值分割算子用法

2023-05-16

1.threshold(Image : Region : MinGray, MaxGray : ):通过给定的阈值区间对图像进行分割

效果图:

                                                       

read_image (Audi2, 'audi2')
fill_interlace (Audi2, ImageFilled, 'odd')
threshold (ImageFilled, Region, 0, 90)

 

2.binary_threshold(Image : Region : Method, LightDark : UsedThreshold):自动阈值分割,可以自动选择出'light' 区域或'dark' 区域,使用自动确定的全局阈值分割单通道图像,使用阈值方法Method有'max_separability' 和'smooth_histo'两个值,这两个值都是只应用在具有双峰直方图的图像(bin_threshold是过去时,新的应用程序应该使用binary_threshold)

                                                               

reduce_domain (Image, RegionROI, ImageReduced)
binary_threshold (ImageReduced, RegionBackground, 'max_separability', 'dark', UsedThreshold)

3.dyn_threshold(OrigImage, ThresholdImage : RegionDynThresh : Offset, LightDark : ):使用局部阈值分割图像,首先需要对图像进行平滑处理(例如 mean_image, binomial_filter, gauss_filter等等),然后用原图与平滑后的图逐个像素作比较,可以根据参数分割出原图比平滑后的图灰度高(或者低)Offset个灰度值的区域。(Offset的值最好是在5到40之间)

                     

read_image (Image, 'surface_scratch')
mean_image (Image, ImageMean, 7, 7)
dyn_threshold (Image, ImageMean, DarkPixels, 5, 'dark')

4.dual_threshold(Image : RegionCrossings : MinSize, MinGray, Threshold : ):阈值分割有正负之分的图像,将输入图像中灰度值>= Threshold的分为“positive”区域,将灰度值 <= -Threshold的分为“negative”区域,只有当“positive”或“negative”区域的面积大于MinSize的区域才会考虑,区域的最大灰度值 < MinGray时,该区域被抑制。 “positive” 和“negative”区域不一定覆盖整个区域,灰度值在-Threshold 与Threshold和-MinGray 与 MinGray之间是不被考虑的。

     

read_image (Traffic1, 'traffic1')
read_image (Traffic2, 'traffic2')
convert_image_type (Traffic1, ImageConverted1, 'int2')
convert_image_type (Traffic2, ImageConverted2, 'int2')
* Subtract two images.
sub_image (ImageConverted1, ImageConverted2, ImageSub, 1, 0)
dual_threshold (ImageSub, RegionDiff, 500, 20, 10)

5.auto_threshold(Image : Regions : Sigma : ):使用从直方图确定的阈值分割图像,算法过程:1.获取输入图像的灰度直方。

使用标准差为Sigma 的一维高斯滤波器对直方图进行滤波。3.计算滤波后的直方图的极小值。4.以计算得到的极小值所对应的灰度值为分割阈值对图像进行分割。

      

read_image (Aegypt1, 'egypt1')
get_image_size (Aegypt1, Width, Height)
dev_open_window (0, 0, Width, Height, 'black', WindowID)
set_display_font (WindowID, 14, 'mono', 'true', 'false')
dev_set_colored (6)
dev_clear_window ()
Sigma := 4
auto_threshold (Aegypt1, Regions, Sigma)

6.char_threshold(Image, HistoRegion : Characters : Sigma, Percent : Threshold):为提取字符执行阈值分割。主要应用是在明亮的纸张上分割单通道的暗字符图像。该算子工作如下:1.首先,对Image图像的HistoRegion 内的点计算灰度直方图,用给定的Sigma高斯平滑对直方图进行平滑处理,减少噪音。在直方图中,背景(白纸)在高灰度值处对应一个大的峰值,而字符在低灰度值处形成一个小的峰值。与操作符binary_threshold (with 'Method'='smooth_histo')定位两个峰值之间的最小值不同,这里分割的阈值是根据直方图的最大值确定的,即,背景,条件如下:

histogram[threshold] * 100.0 < histogram[maximum] * (100.0 - Percent)

                     

read_image (Alpha1, 'alpha1')
get_image_size (Alpha1, Width, Height)
dev_open_window (0, 0, Width, Height, 'black', WindowHandle)
set_display_font (WindowHandle, 16, 'mono', 'true', 'false')
dev_display (Alpha1)
dev_set_color ('white')
dev_clear_window ()
char_threshold (Alpha1, Alpha1, Characters, 6, 95, Threshold)

7.fast_threshold(Image : Region : MinGray, MaxGray, MinSize : ):利用全局阈值快速阈值化图像,从输入图像中选取灰度值g满足一下条件的像素MinGray < g < MaxGray。该算子工作如下:首先,处理位于选定的水平线上的所有点,这些点有它们的距离MinSize 指定,然后,处理所有先前选择的点的邻域(size(2*MinSize + 1)*(2*MinSize + 1)),速度比threshold快

                                                             

read_image (Image, 'particle')
dev_close_window ()
get_image_size (Image, Width, Height)
dev_open_window (0, 0, Width, Height, 'black', WindowID)
dev_display (Image)
dev_set_color ('red')
dev_set_draw ('fill')
dev_update_var ('off')
dev_update_window ('off')
dev_update_pc ('off')
count_seconds (Seconds1)
fast_threshold (Image, Region, 128, 255, 10)

8.hysteresis_threshold(Image : RegionHysteresis : Low, High, MaxLength : ):对图像执行滞后阈值操作,输入图像中灰度值大于或等于Hight的所有点立即被接受(“secure” 安全点),相反,所有灰度值小于Low的点会立即被拒绝。如果某个点(灰度值在Low与High之间)连接到“secure”点的距离长度不超过MaxLength,则该点为两个阈值之间的灰度值的 “Potential” 潜在点,这意味着安全点影响它们的环境(滞后)

                                                              

decompose3 (ImageReduced, ImageR, ImageG, ImageB)
invert_image (ImageB, ImageInvert)
hysteresis_threshold (ImageInvert, RegionHysteresis2, 190, 200, 5)

9.local_threshold(Image : Region : Method, LightDark, GenParamName, GenParamValue : ):使用局部阈值分割图像。使用method中给出的阈值方法分割单通道图像,目前该算子只提供'adapted_std_deviation'方法,该算法是一种文本二值化技术。 Method = 'adapted_std_deviation',根据Sauvola调用基于局部均值和标准偏差的局部自适应阈值。该算法能够对文档图像进行分割,即使图像质量下降,例如由于不均匀的光照或噪声,它通过考虑局部对比度来实现非均匀背景下的文本二值化。

                                                                 

read_image (Letters, 'letters')
dev_open_window_fit_image (Letters, 0, 0, -1, -1, WindowHandle)
set_display_font (WindowHandle, 16, 'mono', 'true', 'false')
get_image_size (Letters, Width, Height)
gen_image_surface_first_order (ImageSurface, 'byte', 0.5, 0.5, 0.5, Width / 2, Height / 2, Width, Height)
add_image (Letters, ImageSurface, ImageCombined, 0.5, 0)
local_threshold (ImageCombined, Region, 'adapted_std_deviation', 'dark', [], [])

10.watersheds_threshold(Image : Basins : Threshold : ):使用阈值从图像中提取流域盆地。流域之间由一个高度至少为Threshold的分水岭间隔。在第一步中,watersheds_threshold计算流域而不应用阈值,得到的流域与调用流域是得到的流域相同。在第二步中,如果流域被一个小于Threshold的分水岭分隔开,则流域依次合并。

           

read_image (ImageLogo, 'mvtec_logo.png')
dev_close_window ()
get_image_size (ImageLogo, Width, Height)
dev_open_window (0, 0, Width, Height, 'black', WindowHandle)
dev_display (ImageLogo)
disp_continue_message (WindowHandle, 'black', 'true')
stop ()
gauss_filter (ImageLogo, ImageGauss, 9)
sobel_amp (ImageGauss, EdgeAmplitude, 'sum_abs', 3)
watersheds (EdgeAmplitude, Basins1, Watersheds)
dev_display (Basins1)
disp_continue_message (WindowHandle, 'black', 'true')
stop ()
watersheds_threshold (EdgeAmplitude, Basins2, 14)

 

参考文章:https://blog.csdn.net/qq_29187197/article/details/82780566

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

halcon中阈值分割算子用法 的相关文章

  • 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表面检测例程解析

    1 表面划伤检测 例程 xff1a suface scratch dev 描述 xff1a Detect scratches on a surface via local thresholding and morphology 通过使用局部
  • halcon中相似变换、仿射变换、投影变换的区别以及应用方式和例程

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

    1 threshold Image Region MinGray MaxGray xff1a 通过给定的阈值区间对图像进行分割 效果图 xff1a read image Audi2 39 audi2 39 fill interlace Au
  • Halcon (64位)无法卸载或者卸载不彻底,没法再次安装?

    以管理员身份 切换到cmd 1 删除安装目录 rmdir S HALCONROOT 2 查询安装的Halcon版本 reg query HKLM SOFTWARE Wow6432Node MVTec HALCON Windows x64 3
  • Halcon相机标定

    相机标定 相机标定的概念 相机的畸变 相机位置和被拍摄物体位姿关系产生的误差 透镜和成像平面 CMOS 不完全平行 镜头和被拍摄物体不完全平行 标定板 相机标定过程 相机标定的概念 在图像测量过程以及机器视觉应用中 为确定空间物体表面某点的
  • halcon计算仿射矩阵的函数参数中的x和y

    最近opencv和halcon混用 Row Column x y显然已经快乱套了 正常来说 x对应Column y对应Row 是符合自然规律的 但在halcon计算仿射矩阵的函数中参数含义是如下的 hom mat2d translate T
  • halcon 与PLC串口通信解决方案

    OpSystem environment OS if OpSystem Windows NT open serial COM1 SerialHandle else open serial dev tty SerialHandle endif
  • Halcon HTuple由按行排序转成按列排序

    目录 前言 方法 结果 前言 今天有一个需求 把一个HTuple的列表重新排序 列表保存的是由二维展开成一维的数据 先按行保存 存完一行再存下一行 如今需要变一下 改成先保存一列 存完一列后在保存下一列 如有一个二维表格如下 1 2 3 4
  • 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 12.0下载

    Halcon 12 0 链接 https pan baidu com s 15JpLWsfzIIhQEU4jE 3AsQ 密码 l0wt
  • Halcon--灰度腐蚀、二维码识别、图像增强

    二维码识别 create find 识别不到一般对调整识别模型参数 或者对图像进行处理 常用灰度增强或者对比度增强 read image Image datacode ecc200 ecc200 to preprocess 003 gray
  • halcon——缺陷检测常用方法总结(模板匹配(定位)+差分)

    引言 机器视觉中缺陷检测分为一下几种 blob分析 特征 模板匹配 定位 差分 光度立体 halcon 缺陷检测常用方法总结 光度立体 唯有自己强大 博客园 cnblogs com 特征训练 测量拟合 频域 空间域结合 halcon 缺陷检
  • Halcon/C++编程

    配置环境 网上有许多 可以参考配置opencv的步骤 主要就是在配置库目录 包含目录 lib文件 注意 一定要看清楚是win32还是x64 2 实例 显示一幅图像 TODO 在此添加控件通知处理程序代码 HObject ho Image H
  • halcon识别斜着的车牌

    对于倾斜的车牌 我们必须用仿射变换 将车牌弄正 再进行识别 如图 halcon代码 read image Image666 C Users Administrator Desktop 666 jpg decompose3 Image666
  • halcon颜色识别

    halcon颜色识别 通过不同颜色在灰度图中的阈值范围不同来区分颜色 使用阈值分别选出不同的颜色 使用灰度平均值 循环读图进行处理 HSV模型区分颜色 通过不同颜色在灰度图中的阈值范围不同来区分颜色 使用阈值分别选出不同的颜色 dev cl
  • halcon之Blob分析实战

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

    OCR字符识别 流程 流程 读取图片并转灰度图 dev close window read image Image20230324222437 F halcon halconStudy 联想截图 20230324222437 png get
  • QT6+Halcon

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

随机推荐

  • 使用CMake和Visual Studio搭建工程并引入OpenCV库

    前言 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp 在之前的Windows平台下OpenCV的编译与安装 Mega Li的博客 CSDN博客 nbsp 中介绍了Windows平台中使用CMake编译Open
  • UART通信中流控RTS和CTS的理解

    一 流控 xff0c 顾名思义就是流量控制的意思 目的是协调收发双方 xff0c 使数据不会丢失 如果UART只有RX TX两个信号 xff0c 要流控的话只能是软流控 xff1b 如果有RX xff0c TX xff0c CTS xff0
  • JVM虚拟机栈

    虚拟机栈 每个线程在创建时都会创建一个虚拟机栈 xff0c 其内部保存一个个栈帧 xff0c 对应一次次java方法的调用 xff08 线程私有 xff09 生命周期与线程一致 作用 xff1a 主管java线程的运行 xff0c 保存局部
  • C++之串口通讯

    C 43 43 串口操作 简介代码头文件源码文件 示例创建两个虚拟串口用串口调试助手连接COM2来接数据编写测试代码发送数据结果 总结 简介 串行接口简称串口 xff0c 也称串行通信接口或串行通讯接口 xff08 通常指COM接口 xff
  • 用keil写程序时出现“C(162): error C249: 'DATA': SEGMENT TOO LARGE“的错误

    如果定义的数组不用更改就用 uchar code XX 10 61 根据数据的用处 xff0c 可以有以下几种选择 xff1a data xff1a 直接寻址 的片内RAM区低128B xff08 00H 7FH xff09 bdata x
  • ROS 与 Box Turtle、C Turtle、Indigo Igloo 、Jade Turtle 、Kinetic Kame 、Melodic Morenia、Noetic Ninjemys关系

    如果没有错的话相当于这个些都是ros的版本 xff0c 就是不同时期叫的名字不一样 xff0c 用于区别不同的版本 因为也是初学者 xff0c 都还没入门 xff0c 也是网上找的资料 xff0c 并根据自己的理解写的 xff0c 如果有错
  • C语言——VS编译器下程序运行结果闪退解决方法

    C语言 VS编译器下程序运行结果闪退解决方法 学习C语言的过程中可能会遇到这样的问题 xff0c 程序调试的时候没有错误 xff0c 可是在运行结果的时候会发现程序结果闪退 xff0c 导致看不到结果 在此 xff0c 本文总结对比了几种有
  • Gazebo 加载xacro文件和URDF文件的方式

    版权声明 xff1a lt 本博客所有内容均为自己在学习工作中的总结 摘录等 转载请注明出处 如有侵权请联系删除 gt https blog csdn net xuehuafeiwu123 article details 71108959
  • Gazebo显示加载xacro模型文件---改变模型的颜色注意事项

    在xacro文件中 xff0c 有下列语句是修改模型颜色的 xff1a 例 xff1a lt link name 61 34 base link 34 gt lt visual gt lt geometry gt lt box size 6
  • Gazebo中sdf文件和urdf和xacro文件的区别

    sdf文件 urdf文件和xacro文件都是模型文件 xacro文件是urdf文件的改进版 xff0c urdf文件只能在rviz等中显示 xff0c 不能在仿真器中显示出来 xacro文件可以在gazebo仿真器中显示出来 xff0c 相
  • Gazebo的xacro文件添加各种plugins

    官网地址 xff1a http gazebosim org tutorials tut 61 ros gzplugins Tutorial Using Gazebo plugins with ROS Gazebo plugins give
  • ROS中spawn_model方式加载xacro文件,设置模型的位置(xyz,rpy)

    例如加载turtlebot机器人launch文件如下 xff1a 在gazebo仿真中最后都是通过这种方式加载xacro文件的 lt launch gt lt arg name 61 34 base 34 gt lt arg name 61
  • BT1120

    BT1120是高清晰度电视 HDTV 演播室信号数字接口 图像数据是怎么用二进制数据组织在一起的呢 xff1f 个人理解 xff1a 在BT1120标准中说明的图像数据指的是图像的有效尺寸的数据 因为我们看到编码信号包括图像数据和图像基准码
  • 2021-10-22 常用的串口通讯协议

    串口通讯是什么 学术解释是 xff0c 通过总线在一个时间点连续发送一位数据的方法 如同弓箭手频繁射出弓箭一般 xff0c 嗖 嗖 嗖 串口通讯协议是什么 说的大白话一点 xff0c 就是串口通信时所使用的协议传输方式 串口通讯协议有几种呢
  • curl 命令详解

    curl 是一种命令行工具 xff0c 作用是发出网络请求 xff0c 然后获取数据 xff0c 显示在 34 标准输出 34 xff08 stdout xff09 上面 它支持多种协议 xff0c 下面列举其常用功能 一 查看网页源码 直
  • RS485/云台控制(PTZ)学习文档

    RS485 云台控制 xff08 PTZ xff09 学习文档 zxf 一 项目任务 xff1a 在linux环境下通过RS485串口实现对云台镜头的各种控制 xff08 包括摄像头的打开 xff0c 关闭 xff0c 各个方向的运动及运动
  • 为何某些公司不允许使用C++STL

    点击蓝字 关注我们 最初开始禁用 C 43 43 STL xff0c 是因为早期项目编码实践中留下的惯例 xff0c 被后来的程序员继承下来 老项目中这种选择尤其地多 不过如果有人将其上升到公司行为在不同项目中全面禁用 STL xff0c
  • C++vector用法总结

    点击蓝字 关注我们 来源自网络 xff0c 侵删 一 vector 1 vector 说明 1 xff09 vector是C 43 43 标准模板库中的部分内容 xff0c 它是一个多功能的 xff0c 能够操作多种数据结构和算法的模板类和
  • halcon中的Pose

    Pose 姿态描述的是一个刚性的3D转换 xff0c 即 xff0c 一种由任意平移和旋转组成的变换 在Halcon中 xff0c 一个pose是具有7个参数的元组 xff1a 3个参数描述平移 xff08 TransX TransY Tr
  • halcon中阈值分割算子用法

    1 threshold Image Region MinGray MaxGray xff1a 通过给定的阈值区间对图像进行分割 效果图 xff1a read image Audi2 39 audi2 39 fill interlace Au