zoukankan      html  css  js  c++  java
  • Halcon斑点分析涉及算子及其高阶运用

    涉及算子

    获取图像

    使用ROI

    对齐ROI或图像

    校正图像

    基础内容这里不再重述

    预处理图像(过滤)

    基础:

    mean_image(平均平滑过滤),gauss_filter(高斯滤波),binomial_filter(二项式滤波器),median_image(中值滤波)

    高级:

    smooth_image(滤镜过滤),anisotropic_diffusion(各向异性扩散滤波),fill_interlace(针对视频流图像滤波),rank_image(等级滤波器)

    提取分割参数

    基础:

    gray_histo_abs(计算绝对灰度值分布),histo_to_thresh(从直方图确定灰度值阈值)

    高级:

    intensity(计算灰度值的平均值和偏差)

    分割图像

    基础:

    threshold(使用全局阈值分割图像),fast_threshold(使用全局阈值快速处理图像),binary_threshold(二进制阈值),dyn_threshold(局部阈值),histo_to_thresh,gray_histo(计算灰度值分布)

    高级:

    local_threshold(Sauvola算法分割),var_threshold(局部均值和标准差分析分割),watersheds(分水岭方法),watersheds_threshold(通过阈值使用分水岭方法),regiongrowing(区域生长),regiongrowing_mean(平均灰度区域生长)

    处理区域

    基础:

    connection(计算区域的连接组件),select_shape(通过形状特征选择),opening_circle(通过圆形开启区域),closing_circle(通过圆形封闭区域),opening_rectangle1,closeing_rectangle1,difference(计算区域差异),intersection(计算区域交点),union1(计算区域并集),shape_trans(变换形状),fill_up(填充区域中的孔)

    高级:

    select_shape_proto(特定关系选择区域),select_gray(灰度值特征选择区域),clip_region(裁剪区域为),sort_region(区域排序),skeleton(计算区域的骨架),partition_dynamic(动态分区),rank_region(区域等级)

    特征提取

    基础:

    area_center(中心区域),smallest_rectangle1(平行坐标轴的最小矩形),samlllest_rectangle2(任意方向最小矩形),compactness(计算区域紧密度),eccentricity(偏心率),elliptic_axis(椭圆轴),area_center_gray(计算灰度图像中区域的面积和重心),intensity,min_max_gray(计算区域最大最小灰度值)

    高级:

    diameter_region(计算两区域边界点最大距离),inner_rectangle1(区域的最大内部矩形),inner_circle,gray_histo_abs,entropy_gary(确定图像的熵和各向异性)

    结果转换为世界坐标

    基础:

    image_points_to_world_plane(转换像素点)

    高级:

    gen_contour_region_xld(生成XLD轮廓),contour_to_world_plane_xld(转换XLD轮廓)

    可视化结果

    高阶运用

    斑点分析实用方法

    色彩处理

    使用三个颜色通道代替只使用一个灰度通道,Halcon提供了对于彩色图像的一系列算子,可以和斑点分析结合使用

    纹理分析

    纹理分析可用于查找规则和不规则区域,不仅使用单个灰度值,还使用像素邻域对区域进行分割

    斑点分析替代方案

    边缘提取(精确至亚像素)

    在斑点分析中,用像素的灰度值描述区域。作为替代,通过改变边界处的灰度值描述一个区域。这种方法称为边缘检测

    分类器

    要选择特定的灰度值,必须先确定阈值。多数情况下,算子使用固定值或当前值。如果系统自动确定范围,则很有用,这可以通过使用分类器来实现。此外,分类器还可以用于自动根据提取的特征和样本区分好坏对象。

    提速

    许多在线应用程序需要高速运行。这里列出了最常用的几种方法:

    1. 使用ROI帮助程序快速定位检测区域
    2. 如果对象具有特定的最小尺寸,则算子fast_threshold是阈值的快速替代方法。在调用阈值运算符之前,也可以使用gen_region和reduce_domain。
    3. 默认情况下,HALCON会执行一些数据的一致性检查。这些可以通过设置关闭
    4. 默认情况下,HALCON使用带有参数“ init_new-image”的set_system初始化新图像
      这种行为可以改变

    线扫相机

    线扫有时必须处理(例如传送带上的物体)“无限”序列的图像。在这种情况下结束的一幅图像是下一幅图像的开始。这意味着位于两个图像中的部分对象必须合并成一个对象。Halcon提供算子merge_regions_line_scan 帮助合并线扫描图像中的区域。

    高精度

    有时需要高精度。使用斑点分析很难做到这一点,一种方式是使用高分辨率,备选方案是使用灰度值特征(如area_center_gray),如果对象满足特定灰度值,则每个像素都可以分为255个值而不是一个值(前景或背景)。如果需要更高的精度,可以考虑能精确到亚像素的边缘和线条提取

    PS:Halcon的OCR在预处理阶段也使用了斑点分析

    灵感源于官方文档

  • 相关阅读:
    [转]c#的DateTime.Now函数详解
    PHP学习笔记
    【错误】MsDepSvc.exe 站用了80端口/IIS的0×8ffe2740错误解决方
    IIS连接数
    Mybatis3.2.1整合Spring3.1
    linux常用命令大全
    Spring3.2新注解@ControllerAdvice
    SpringMVC强大的数据绑定(2)——第六章 注解式控制器详解
    Console命令详解,让调试js代码变得更简单
    String.format
  • 原文地址:https://www.cnblogs.com/MorganMa/p/13204240.html
Copyright © 2011-2022 走看看