halcon边缘检测

2023-05-16

       边缘检测 - ☆Ronny丶 - 博客园

        寻找边缘的传统方法,即图像中的暗/光转换,是应用边缘滤波器。这些滤光器可以在光和暗区域的边界找到像素。从数学术语中来说,这意味着这些滤波器决定了图像的梯度。此图像渐变通常作为边缘振幅和/或边缘方向返回。通过选择所有边缘振幅的像素,可以提取区域之间的轮廓。另一种寻找边缘的方法是使用一个训练过的深度学习模型来寻找边缘。该方法的优点是,通过再训练模型,可以进一步改进其结果。这样的再训练甚至可以在自定义任务中找到特定的边。 (官网翻译)

        边缘检测的目的就是找到图像中亮度变化剧烈的像素点构成的集合,表现出来往往是轮廓。如果图像中边缘能够精确的测量和定位,那么,就意味着实际的物体能够被定位和测量,包括物体的面积、物体的直径、物体的形状等就能被测量。在对现实世界的图像采集中,有下面4种情况会表现在图像中时形成一个边缘。

  1. 深度的不连续(物体处在不同的物平面上);
  2. 表面方向的不连续(如正方体的不同的两个面);
  3. 物体材料不同(这样会导致光的反射系数不同);
  4. 场景中光照不同(如被树萌投向的地面);

 边缘检测的一般流程:

获取图像

选择感兴趣区域:加快处理速度,减少计算量

图像滤波:使用边缘滤波器获取边缘的梯度和方向。

提取边缘:使用阈值处理将图像中的高亮边缘提取出来。

边缘处理:细化,生成轮廓,合并非连续的边缘,分离背景等。

显示结果:将结果绘制在窗口上,以表现直观的边缘提取效果。

边缘滤波器:Sobel

一、像素级边缘提取

图像滤波

        HALCON提供了广泛的边缘滤波器。最流行的滤波器之一是Sobel滤波器。这是最好的老式过滤器。它结合了速度和合理的质量。相应的运算符被称为sobel_amp和sobel_dir。

        相比之下,edges_image提供了最先进的边缘滤波器。这个操作符实际上不仅仅是一个过滤器。它包括一个使用非最大抑制的边缘细化和一个选择重要边缘点的滞后阈值。它还能非常准确地返回边缘方向和边缘振幅,而这不是Sobel滤波器的情况。如果更高的质量比较长的执行时间更重要,则建议使用此操作符。如果图像没有噪声或模糊,您甚至可以通过使用edges_image中的“sobel_fast”模式来结合精度和速度。在多通道图像中查找边缘的相应操作符为edges_color。

提取边缘

        从边缘振幅图像中提取边缘的最简单的方法是应用阈值来选择具有高边缘振幅的像素。此步骤的结果是一个包含所有边点的区域。对于骨架,这些边缘可以被减薄到一个像素的宽度。作为阈值的高级版本,hysteresis_threshold可以用于消除不重要的边。另一个高级的选择是在骨架之前调用操作符nonmax_suppression_dir,这在困难的情况下可能会产生更精确的边。请注意,要使用此操作符,您必须计算出边缘方向图像。相比之下,高级滤波器edges_image已经包括了非最大抑制和迟滞阈值。因此,在这种情况下,一个简单的阈值就足以提取一个像素宽的边。如果只需要边缘点作为一个区域,则可以使用运算符inspect_shape_model。在这里,所有步骤包括边缘滤波、非最大抑制和迟滞阈值都是高效的。

边缘处理

        如果您想提取边段的坐标,split_skeleton_lines是正确的选择。必须为每个连接的组件(连接的结果)调用此操作符,并返回线段的所有控制点。作为一种替代方法,可以使用霍夫变换来获得线段。在这里,有操作符hough_lines_dir和hough_lines。您还可以通过使用运算符gen_contours_skeleton_xld将边缘区域转换为XLD轮廓。该方法的优点是在第87页上提供了针对XLD轮廓处理的扩展操作符集,例如,针对轮廓分割、特征提取或近似。

        您可以使用background_seg轻松地提取被边缘所包围的区域。如果区域由于边缘中的间隙而合并,则可以预先使用运算符close_edges或close_edges_length在提取区域之前关闭间隙。作为一种替代方法,像opening_circle这样的形态学算符可以应用于background_seg的输出区域。

1.1  Sobel算子

#边缘检测
read_image(Image,'E:/C/Halcon/zhuyin2.jpg')
rgb1_to_gray(Image,GrayImage)
sobel_amp(GrayImage,Amp,'sum_abs',9)
threshold(Amp,Edg,100,255)
skeleton (Edg,Skeleton)
dev_clear_window()
dev_display(Skeleton)

sobel_amp()

sobel_dir()edges_image()

derivate_gauss()

laplace()

laplace_of_gauss()

1.2  Laplace算子

1.3  Canny算子

二、亚像素级边缘提取

三、轮廓处理

        轮廓必须是闭合的

四、基于深度学习的边缘提取

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系: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齿轮测量

    Halcon齿轮测量 xff08 Halcon学习笔记 xff09 齿轮灰度图像如下 xff1a Halcon齿轮测量设计流程 首先进行阈值分割并利用面积特征选取出齿轮部分 xff1a 创建圆的XLD轮廓 xff1a 进行尺寸测量 xff1
  • OpenCV入门(四)——边缘检测

    目录 0x01 梯度算子 0x02 一阶微分算子 0x03 二阶微分算子 0x04 图像差分运算 0x05 非极大值抑制 0x06 基本边缘算子 Sobel 0x07 基本边缘算子 Laplace 0x08 基本边缘检测算子 Roberts
  • 【Halcon】计算机视觉(CV)与机器视觉(MV)

  • Canny边缘检测

    Canny边缘检测 1 使用高斯滤波器 xff0c 以平滑图像 xff0c 滤除噪声 2 计算图像中每个像素点的梯度强度和方向 3 应用非极大值 xff08 Non Maximum Suppression xff09 抑制 xff0c 以消
  • halcon中阈值分割算子用法

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

    边缘检测 Ronny丶 博客园 寻找边缘的传统方法 xff0c 即图像中的暗 光转换 xff0c 是应用边缘滤波器 这些滤光器可以在光和暗区域的边界找到像素 从数学术语中来说 xff0c 这意味着这些滤波器决定了图像的梯度 此图像渐变通常作
  • 五种边缘检测算法(附代码)

    一 Roberts 边缘检测算子 Roberts边缘检测算子根据任意一对互相垂直方向上的差分可用来计算梯度的原理 采用对角线方向相邻两像素之差 即 然后根据式 1 9 2 计算出Roberts的梯度幅度值 它们的卷积算子为 Roberts检
  • 【halcon】亚像素轮廓XLD

    XLD eXtended Line Descriptions XLD其实就是指的亚像素轮廓 如何理解亚像素 上一篇 halcon入门小技巧 提到的 threshold Image Region 128 255 这个呢 是给了一个灰度的范围
  • Halcon: (示例 1)OCR 字符识别

    目录 示例 涉及算子描述 text line orientation hom mat2d identity hom mat2d rotate affine trans image dots image reduce domain vecto
  • 深度学习边缘检测 HED 训练自己的数据

    深度学习边缘检测 HED 训练自己的数据 数据集制作 使用labelme标注 选择lineStrip 线条束 标注 生成json文件 之后使用批量处理脚本将json文件转为边缘数据集 具体过程如下 首先将所有的json文件放入一个文件夹内
  • halcon基本图像操作

    halcon基本图像操作 阈值分割 取某一个阈值下的某一个区域 获取中心点位置 形态学 膨胀 腐蚀 开运算 闭运算 综合使用 开运算和检测轮廓 字符识别 资源路径 F halcon halconStudy 阈值分割 灰度值 读取图像 转灰度
  • 图像处理(1) : 图像增强

    图像增强就是指通过某种图像处理方法对退化的某些图像特征 如边缘 轮廓 对比度等进行处理 以改善图像的视觉效果 提高图像的清晰度 或是突出图像中的某些 有用 压缩其他 无用 信息 将图像转换为更适合人或计算机分析处理的形式 图像增强可以分为两
  • halcon识别斜着的车牌

    对于倾斜的车牌 我们必须用仿射变换 将车牌弄正 再进行识别 如图 halcon代码 read image Image666 C Users Administrator Desktop 666 jpg decompose3 Image666
  • 基于相关性(NCC)的模板匹配Halcon

    一 原理 归一化相关性 NCC normalization cross correlation 顾名思义 就是用于归一化待匹配目标之间的相关程度 注意这里比较的是原始像素 通过在待匹配像素位置p px py 构建3 3邻域匹配窗口 与目标像
  • halcon颜色识别

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

    Blob分析 Blob Analysis 在计算机视觉中的Blob是指图像中的具有相似颜色 纹理等特征所组成的一块连通区域 Blob分析 Blob Analysis 是对图像中相同像素的连通域进行分析 该连通域称为Blob 其过程其实就是将
  • 【四】3D Object Model之创建Creation——read_object_model_3d()算子

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

    Halcon模板匹配 Halcon模板匹配的方法 模板匹配的流程 基于形状的模板匹配的思路 原理 Halcon模板匹配的方法 模板匹配的流程 基于形状的模板匹配的思路 读取图像 转灰度图 dev close window dev open
  • 计算机视觉入门之构建一个扫描仪

    源代码 import the necessary packages from transform import four point transform from skimage filters import threshold local

随机推荐