一、提要

每个halcon的算子都有一个生态,它是生态一个环节;花点时间了解清楚是非常必要的。本文着重对算子select_contours_xld进行解刨。

二、生态前半部分

在调用select_contours_xld之前,大致有如下操作:

2.1 测试图准备

2.2 初始代码

read_image (ColorImage, 'F:/images/reglist/COVER.jpg')
rgb1_to_gray(ColorImage,Image)
threshold(Image, Region, 96, 155)
edges_sub_pix (Image, Edges, 'canny', 2, 20, 40)
clear_window(3600)
disp_xld(Edges, 3600)

结果:得到两个封闭曲线,一个是外轮廓,一个是空洞。

2.3 曲线分段

曲线为什么分段?是因为曲线本身不光滑,将曲线的分段光滑段进行提取。

segment_contours_xld(Edges, ContoursSplit, 'lines_circles', 5, 4, 2)
clear_window(3600)
disp_xld(ContoursSplit, 3600)

结果图像:

可以看到10个不同颜色的分段。

三、select_contours_xld的种种操作

3.1 算子语法

select_contours_xld(Contours : SelectedContours : Feature, Min1, Max1, Min2, Max2 : )

3.2 根据几个特征选择 XLD 曲线段。

select_contours_xld 根据以下特征(参数Feature)从输入轮廓Contours中选择XLD轮廓:

1)按照“轮廓长度”提取,'contour_length'

不返回长度小于 Min1 或大于 Max1 的所有轮廓(Min2 和 Max2 在这里没有影响)。

select_contours_xld(ContoursSplit, SelectedContours, 'contour_length', 0.5, 20, -1, -1)
clear_window(3600)
disp_xld(ContoursSplit, 3600)

以上取出长度0.5 - 20的线段。

select_contours_xld(ContoursSplit, SelectedContours, 'contour_length', 20, 200, -1, -1)
clear_window(3600)
disp_xld(ContoursSplit, 3600)

2)“最大范围”'maximum_extent'::
        不返回最大范围(根据 Haralick 和 Shapiro:计算机和机器人视觉,Addison-Wesley 1992,第 3.2 章,通过它们在行和列方向上的八个极值点测量)小于 Min1 或大于 Max1 的所有轮廓将不返回( Min2 和 Max2 在这里没有影响)。

伸展最大长度的取值范围,所谓伸展长度类似于直径,如下图:

select_contours_xld(ContoursSplit, SelectedContours, 'maximum_extent', 70, 1220, -1, -1)

调整参数再试:

select_contours_xld(ContoursSplit, SelectedContours, 'maximum_extent', 80, 1220, -1, -1)
clear_window(3600)
disp_xld(SelectedContours, 3600)

select_contours_xld(ContoursSplit, SelectedContours, 'maximum_extent', 120, 1220, -1, -1)
clear_window(3600)
disp_xld(SelectedContours, 3600)

3)'方向':
        仅返回回归线的方向在 Min1 和 Max1 之间(以弧度为单位,逆时针方向)的等高线。 Min1 和 Max1 映射到 [0,2*PI[. (Min2 和 Max2 在这里没有影响)。

关于方向定义,是将扇形内的线挑选出来,如图:

如果拟合点,(图中为P1,P2,P3...  )在规定的扇形范围内,就认为它们在一条直线上。这个扇形以 Min1 和 Max1规定。直线(红色)在扇形范围内。

4)“曲率”:
        仅返回与回归线的平均距离介于 Min1 和 Max1 之间且距离的标准差介于 Min2 和 Max2 之间的等高线。

5)'封闭':

仅返回其起点和终点之间的距离小于或等于 Max1 像素的轮廓。 (Min1、Min2 和 Max2 在这里没有影响。)

6)'开放':
        仅返回起点和终点之间的距离大于 Min1 像素的轮廓。 (Max1、Min2 和 Max2 在这里没有影响)。

【Halcon知识】select_contours_xld算子的环境相关推荐

  1. halcon知识:hough变换检出图像的直线

    一.说明 用hough变换查找直线:hough的原理见文章:  图像处理:Hough变换原理分析 此文专门介绍halcon的具体算子实现. 二.示例代码 * Detect lines in an im ...

  2. halcon知识:圆度和紧凑度

    一.说明 本文是halcon知识:select_shape究竟怎么用(1)的继续,关于select_shape的用途说的还不够,因为这些属性很多,有必要分开介绍. 二.圆度和紧凑度的直观演示 2.1 ...

  3. halcon知识:select_shape究竟怎么用(1)?

    说明 select_shape是halcon的强大算子,需要重点研究,本例按照Features='area',对Operation进行说明,但是更多的案例将在一个更大的文档中说明. 一. 测试sele ...

  4. linux环境 前端开发环境搭建,Linux运维知识之linux 前端环境搭建

    本文主要向大家介绍了Linux运维知识之linux 前端环境搭建,通过具体的内容向大家展现,希望对大家学习Linux运维知识有所帮助. 1.下载node.js 2.在linux 里使用wget命令 w ...

  5. Python基础笔记_Day01_计算机基础知识和Python开发环境搭建

    Day01_计算机基础知识和Python开发环境搭建 目录 01.01_计算机基础知识(计算机概述)(了解) 01.02_计算机基础知识(软件开发和计算机语言概述)(了解) 01.03_计算机基础知识 ...

  6. Halcon知识:segment_contours_xld算子

    一.案例说明 边界提取:以前的边缘提取都建立在前景通过thresold将区域提取出,然后从区域提出XLD,但是,如果区域无法提出就不好办了.此例子告诉大家,不必二值化提取,也能取出边缘来,edges_ ...

  7. 【Halcon知识】外轮廓线的算子

    一.提要 这里介绍,如何将图像的对象返回成图形的几何元素问题.Halcon中对应的算子很多,这里将从最重要的开始介绍,然后逐一揭示其它算子的用途.好了,就开始吧! 二.算子001:将轮廓线分割成线段和 ...

  8. Halcon知识: XLD的概念

    一.halcon中XLD的概念与应用, 1.1  halcon中什么是XLD?        XLD(eXtended Line Descriptions):XDL就是一个轮廓函数,它不是基于像素,人 ...

  9. halcon知识:图像纹理特征提取cooc_feature_matrix

    一.关于共生矩阵 如果不懂啥叫共生矩阵,将无法阅读该文.如果试图搞明白啥叫共生矩阵,请看我的另一篇博文,<hjalcon知识:共生矩阵> 本片介绍共生矩阵产生的其它属性:能量.相关性.同质 ...

最新文章

  1. 1.43千米外隔墙透视!这项黑科技已被中科大潘建伟团队实现
  2. C++关键字Volatile的作用
  3. 《从零开始学Swift》学习笔记(Day 6)——哎呀常量和变量都该什么时候用啊?...
  4. 汇编伪指令EVEN(数据对齐的伪指令,使得下一个变量的起始地址是偶数字节的)
  5. JS----javascript中使用reverse()方法反转数组
  6. Eigen(4)矩阵基本运算
  7. VirtualBox 虚拟机的网络设置
  8. ASP.NET 5 入门 (3) – Logging
  9. 消息中间件学习总结(19)——生产案例:消息中间件 MQ 如何处理消费失败的消息?
  10. Kubernetes 网络原理
  11. spss因子分析结果解读_因子分析巴特利特球形度检验结果解读
  12. 我为什么要学习 Python(2020版)
  13. 常规波束形成法matlab仿真,常规波束形成matlab程序
  14. GD32F103快速替换STM32F103
  15. 基于HostLink协议的Fins命令读写
  16. 万字长文带你快速了解并上手Testcontainers
  17. 前端学习笔记 - promise是什么?能解决什么问题?
  18. Rockchip PX30/RK3326 Android开机时间优化
  19. 虹膜手机元年,支付是杀手级场景
  20. C++ Primer Plus_读书笔记_第2章 开始学习C++

热门文章

  1. CKA考试习题:K8S日志、监控与应用管理
  2. 基于android的宠物app
  3. ADB之install
  4. H5 + vue 监听手机屏幕旋转及判断横竖屏
  5. Linux / Ubuntu 关机命令
  6. Android 大作业之个人博客新闻App
  7. 用scrapy 大规模 无登陆 爬取 58同城 房产信息
  8. 我的世界基岩版种子和java版种子_我的世界基岩版村庄种子-恶地与冰刺之地|我的世界pe种子...
  9. python练习10:打印楼梯,同时在楼梯上方打印两个笑脸。
  10. 机械动作时序图怎么画_时序图怎么画?