【Halcon知识】select_contours_xld算子的环境
一、提要
每个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算子的环境相关推荐
- halcon知识:hough变换检出图像的直线
一.说明 用hough变换查找直线:hough的原理见文章: 图像处理:Hough变换原理分析 此文专门介绍halcon的具体算子实现. 二.示例代码 * Detect lines in an im ...
- halcon知识:圆度和紧凑度
一.说明 本文是halcon知识:select_shape究竟怎么用(1)的继续,关于select_shape的用途说的还不够,因为这些属性很多,有必要分开介绍. 二.圆度和紧凑度的直观演示 2.1 ...
- halcon知识:select_shape究竟怎么用(1)?
说明 select_shape是halcon的强大算子,需要重点研究,本例按照Features='area',对Operation进行说明,但是更多的案例将在一个更大的文档中说明. 一. 测试sele ...
- linux环境 前端开发环境搭建,Linux运维知识之linux 前端环境搭建
本文主要向大家介绍了Linux运维知识之linux 前端环境搭建,通过具体的内容向大家展现,希望对大家学习Linux运维知识有所帮助. 1.下载node.js 2.在linux 里使用wget命令 w ...
- Python基础笔记_Day01_计算机基础知识和Python开发环境搭建
Day01_计算机基础知识和Python开发环境搭建 目录 01.01_计算机基础知识(计算机概述)(了解) 01.02_计算机基础知识(软件开发和计算机语言概述)(了解) 01.03_计算机基础知识 ...
- Halcon知识:segment_contours_xld算子
一.案例说明 边界提取:以前的边缘提取都建立在前景通过thresold将区域提取出,然后从区域提出XLD,但是,如果区域无法提出就不好办了.此例子告诉大家,不必二值化提取,也能取出边缘来,edges_ ...
- 【Halcon知识】外轮廓线的算子
一.提要 这里介绍,如何将图像的对象返回成图形的几何元素问题.Halcon中对应的算子很多,这里将从最重要的开始介绍,然后逐一揭示其它算子的用途.好了,就开始吧! 二.算子001:将轮廓线分割成线段和 ...
- Halcon知识: XLD的概念
一.halcon中XLD的概念与应用, 1.1 halcon中什么是XLD? XLD(eXtended Line Descriptions):XDL就是一个轮廓函数,它不是基于像素,人 ...
- halcon知识:图像纹理特征提取cooc_feature_matrix
一.关于共生矩阵 如果不懂啥叫共生矩阵,将无法阅读该文.如果试图搞明白啥叫共生矩阵,请看我的另一篇博文,<hjalcon知识:共生矩阵> 本片介绍共生矩阵产生的其它属性:能量.相关性.同质 ...
最新文章
- 1.43千米外隔墙透视!这项黑科技已被中科大潘建伟团队实现
- C++关键字Volatile的作用
- 《从零开始学Swift》学习笔记(Day 6)——哎呀常量和变量都该什么时候用啊?...
- 汇编伪指令EVEN(数据对齐的伪指令,使得下一个变量的起始地址是偶数字节的)
- JS----javascript中使用reverse()方法反转数组
- Eigen(4)矩阵基本运算
- VirtualBox 虚拟机的网络设置
- ASP.NET 5 入门 (3) – Logging
- 消息中间件学习总结(19)——生产案例:消息中间件 MQ 如何处理消费失败的消息?
- Kubernetes 网络原理
- spss因子分析结果解读_因子分析巴特利特球形度检验结果解读
- 我为什么要学习 Python(2020版)
- 常规波束形成法matlab仿真,常规波束形成matlab程序
- GD32F103快速替换STM32F103
- 基于HostLink协议的Fins命令读写
- 万字长文带你快速了解并上手Testcontainers
- 前端学习笔记 - promise是什么?能解决什么问题?
- Rockchip PX30/RK3326 Android开机时间优化
- 虹膜手机元年,支付是杀手级场景
- C++ Primer Plus_读书笔记_第2章 开始学习C++