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
  • 【数字图像处理】边缘检测

    文章目录 0 前言1 Sobel算子2 Canny算子3 深度学习算法3 1 Holistically Nested Edge Detection xff08 HED xff09 3 2 Richer Convolutional Featu
  • 边缘检测(5)Canny算法

    边缘检测 1 Sobel 2 Laplace 3 Roberts 4 Canny Canny canny对边缘检测质量进行分析时 xff0c 有3个原则 xff1a 1 信噪比准则 2 定位精度准则 3 单边缘响应准则 canny边缘检测的
  • Halcon齿轮测量

    Halcon齿轮测量 xff08 Halcon学习笔记 xff09 齿轮灰度图像如下 xff1a Halcon齿轮测量设计流程 首先进行阈值分割并利用面积特征选取出齿轮部分 xff1a 创建圆的XLD轮廓 xff1a 进行尺寸测量 xff1
  • Halcon 亚像素检测指定区域 瑕疵 轮廓

    如图 找到下图中铭牌上 面积最大的瑕疵快 认为黑点是瑕疵 span class token operator span 读取图片 并获取尺寸 span class token function read image span span cl
  • 边缘检测:Canny算子,Sobel算子,Laplace算子

    1 canny算子 Canny边缘检测算子是John F Canny于 1986 年开发出来的一个多级边缘检测 算法 更为重要的是 Canny 创立了边缘检测计算理论 xff08 Computational theory ofedge de
  • halcon中阈值分割算子用法

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

    相机标定 相机标定的概念 相机的畸变 相机位置和被拍摄物体位姿关系产生的误差 透镜和成像平面 CMOS 不完全平行 镜头和被拍摄物体不完全平行 标定板 相机标定过程 相机标定的概念 在图像测量过程以及机器视觉应用中 为确定空间物体表面某点的
  • Halcon HTuple由按行排序转成按列排序

    目录 前言 方法 结果 前言 今天有一个需求 把一个HTuple的列表重新排序 列表保存的是由二维展开成一维的数据 先按行保存 存完一行再存下一行 如今需要变一下 改成先保存一列 存完一列后在保存下一列 如有一个二维表格如下 1 2 3 4
  • MATLAB数字图像处理(三)——图像轮廓提取与边缘检测

    文章目录 二值图像轮廓提取 灰度图像边缘检测 含噪图像边缘检测 均值滤波函数 二值图像轮廓提取 根据掏空内部点算法 运用Matlab编程实现二值图像的轮廓提取 以二值图像circles为例 I imread circles png subp
  • C# 联合Halcon开发的完整项目案例(三套完整源码)附下载连接

    C 联合Halcon开发的完整项目案例 三套完整源码 点我下载三套项目源码 1 C 联合Halcon开发的程序 一整套源码 相机点胶定位 图像采集 数据查询相机间通讯具体情况如下图所示 案例注释详细 方便二次开发 2 C Halcon Vi
  • Halcon: (示例 1)OCR 字符识别

    目录 示例 涉及算子描述 text line orientation hom mat2d identity hom mat2d rotate affine trans image dots image reduce domain vecto
  • Blob+定位+特征来识别药片缺陷

    原图 定位 结果 代码 This example demonstrates an application from the pharmaceutical industry The task is to check the content o
  • halcon基本图像操作

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

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

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

    原图 识别结果 代码 color fuses hdev classify fuses by color dev update window off step set up fuse properties and hue ranges Fus
  • Halcon实战记录之二《判断两个直线或者矩形是否相交》

    项目中使用到需要判断两个矩形是否相交 由于我使用Halcon不久 对其算子还不熟悉 不知道是否有现成的算子可以直接实现 如果有 还请各位朋友给留言指出 先谢谢了 我这里用了如下的方法 1 如果两个矩形相交 那么它们中的线段一定会有相交的 我
  • Python opencv学习-6Canny边缘检测学习

    代码 图片参考https blog csdn net tengfei461807914 article details 76376941 修正了其文中出现的错误 canny作用及用法简单理解 阈值针对的是图像灰度梯度而言 需要确定哪些边界是
  • haclcon实现图像处理的傅里叶变换

    dev open file dialog read image default default Selection read image Image Selection mean image Image ImageMean 9 9 gaus

随机推荐