用过Halcon的基本都用过这个select_shape,灵活用起来,还是非常好用的。
下面来说说它的使用。

我们阈值分割后,通常的想法是直接选取自己感兴趣的。
但是这是非常理想的状态,按这个思路写的程序,八成要被工程蹂躏。

一般用select_shape算子来进行两类的操作来达成工程上更好的鲁棒性:

  1. 首先是用select_shape很小心的过滤掉确定没用的干扰区域,但是有用信息又不会损失太大。
    比如用area去掉dyn_threshold提取出来的很多小噪点。比如离目标较远的其他选中区域去掉等。
  2. 进行blob分析和形态学操作,对感兴趣的目标特征进行各种特征增强,为后面的最后提取目标做准备。
  3. 最后再用select_shape,一般用多条件组合来选取目标区域。

这样写出来的程序才具有更好的鲁棒性,更能适应工程需求。

在它的各项特征中,最常用而有效的就是area面积了,
另外其他的特性虽然用的没那么普及,但是深入理解每个特性的具体定义,绝对是事半功倍。
比如用圆度去除非圆弧长条,反之,离心率提取细长特征体等等。
磨刀不误砍柴工,花在这个select_shape上的时间是绝对值得的。

  • 题外话:模板匹配,边缘提取,多种阈值分割都值得花力气掌握,后面有时间陆续写。

下面是select_shape的Feature的中英文解释
核心:提取出来目标形状和干扰形状最大最明显的本质特征差别,组合特性进行筛选。

'area': Area of the object

目标的面积:ROI面积大小进行筛选,去掉小面积的干扰,和其他组合效果更好。

'row': Row index of the center
'column': Column index of the center

中心行列的值:定位在一个范围进行筛选

'width': Width of the region
'height': Height of the region

区域的宽度和高度:对区域的整体大小占地进行筛选

'row1': Row index of upper left corner
'column1': Column index of upper left corner

左上角的行列值:可以得到形状的最左最上值

'row2': Row index of lower right corner
'column2': Column index of lower right corner

右下角的行列值:可以得到形状的最右最下值

'circularity': Circularity (seecircularity)

圆度,与圆相似程度,圆度=区域面积/((中心到区域边界的最大距离)^2PI),区域面积和以最大距离为半径的圆面积做比较,越接近圆,这个比值就会越接近1。
圆度对于大的凸起、孔洞和不相连的区域敏感。必须实心圆度才高。

'compactness': Compactness (seecompactness)

紧凑度=轮廓的长度^2/(4区域的面积PI)。一个圆的紧凑度是1。如果区域是长条或有孔,则紧凑度大于1。
紧凑度对粗糙度和孔洞敏感。大于1,外表越是粗糙毛刺多,值越大。孔洞多,值越大。越接近实心圆越紧凑。铁匠锻铁块就是这样的。

'contlength': Total length of contour (see operatorcontlength)

轮廓长度:轮廓线的总长度。同等尺寸下,多刺多孔的值大。

'convexity': Convexity (seeconvexity)

凸性,又称凸度,凸性=凸包面积/原区域面积,如果是矩形、圆,凸性为1,如果区域含有缺口或孔洞,凸性小于1. 凸包内每个顶点所对应的内角是否小于180度

'rectangularity': Rectangularity (seerectangularity)

矩形相似度,越接近矩形,就越接近1,否则小于1

'ra': Main radius of the equivalent ellipse (seeelliptic_axis)

等效椭圆的主半径

'rb': Secondary radius of the equivalent ellipse (seeelliptic_axis)

等效椭圆的副半径

'phi': Orientation of the equivalent ellipse (seeelliptic_axis)

等效椭圆的方向

'anisometry:'Anisometry (seeeccentricity)

离心率,等距=等效椭圆主轴/副轴

'bulkiness:'Bulkiness (see operatoreccentricity)

蓬松性=PI主轴*副轴/区域面积

'struct_factor:'Structur Factor (see operatoreccentricity)

结构元素

'outer_radius': Radius of smallest surrounding circle (seesmallest_circle)

最小外接圆的半径

'inner_radius': Radius of largest inner circle (seeinner_circle)

最小内接圆的半径

'inner_width':Width of the largest axis-parallel rectangle that fits into the region (seeinner_rectangle1)

区域最大内接矩形的宽度

'inner_height': Height of the largest axis-parallel rectangle that fits into the region (seeinner_rectangle1)

区域最大内接矩形的高度

'dist_mean':Mean distance from the region border to the center (see operatorroundness)

从区域边界到中心的平均距离

'dist_deviation:'Deviation of the distance from the region border from the center (see operatorroundness)

从区域边界到中心的偏差

'roundness': Roundness (see operatorroundness)

圆度

'num_sides': Number of polygon sides (see operatorroundness)

多边形的边的数量

'connect_num': Number of connection components (see operatorconnect_and_holes)

连接区域的数量

'holes_num': Number of holes (see operatorconnect_and_holes)

孔洞数

'area_holes': Area of the holes of the object (see operatorarea_holes)

目标的孔洞面积

'max_diameter': Maximum diameter of the region (see operatordiameter_region)

区域最大直径

'orientation': Orientation of the region (see operatororientation_region)

区域方向

'euler_number': Euler number (see operatoreuler_number)

欧拉数

'rect2_phi':Orientation of the smallest surrounding rectangle (see operatorsmallest_rectangle2)

最小外接矩形的方向

'rect2_len1': Half the length of the smallest surrounding rectangle (see operatorsmallest_rectangle2)

最小外接矩形的长度的一半

'rect2_len2': Half the width of the smallest surrounding rectangle (see operatorsmallest_rectangle2)

最小外接矩形的宽度的一半

'moments_m11': Geometric moments of the region (see operatormoments_region_2nd)

区域的几何矩

select_shape算子的使用与特性相关推荐

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

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

  2. 使用形态学提取连续背景的断层(erosion_rectangle1算子)

    本文是针对检验图形纹理是否条理分明,使用形态学的方法对其进行验证,最终输出OK或者NG的结果.顺便认识新算子:decompose3.erosion_rectangle以及语法for循环![原图](ht ...

  3. 数字图像处理第三章边缘检测(Sobel算子、Laplace算子)

    边缘 边缘(edge)是指图像局部强度变化最显著的部分.主要存在于目标与目标.目标与背景.区域与区域(包括不同色彩)之间,是图像分割.纹理特征和形状特征等图像分析的重要基础. 边缘检测概念 1.边缘检 ...

  4. 拉普拉斯算子Laplace

    拉普拉斯算子Laplace 概述 二阶差分 算子模板 应用原理 python代码实现 opencv代码 效果展示 概述 定义:拉普拉斯算子是n维欧几里德空间中的一个二阶微分算子,是用二阶差分来计算图像 ...

  5. halcon初级应用攻略

    标准 Halcon 应用攻略 1.Halcon 的自我描述 Program Logic ? Each program consists of a sequence of HALCON operator ...

  6. ADPRL - 近似动态规划和强化学习 - Note 3 - Stochastic Infinite Horizon Problem

    Stochastic Infinite Horizon Problem 3.Stochastic Infinite Horizon Problem 定义3.1 无限范围的马尔可夫决策过程 (Marko ...

  7. dataframe groupby_PySpark SQL——SQL和pd.DataFrame的结合体

    导读 昨日推文PySpark环境搭建和简介,今天开始介绍PySpark中的第一个重要组件SQL/DataFrame,实际上从名字便可看出这是关系型数据库SQL和pandas.DataFrame的结合体 ...

  8. 支持国产处理器仿真的全数字实时仿真平台SkyEye与可信编译器L2C的核心翻译步骤

    1.核心翻译步骤示例 本节我们以第2节提到的Lustre语言的主要特性为线索来解释L2C在翻译过程中的关键节点是如何处理的, 并以图 1的实例来解释Lustre程序是如何被一步步地翻译到Clight语 ...

  9. 从“技术理性”到“实践智慧” 华为云这波大招够强

    常言道,人生只需要做对三件事:找对平台.交对朋友.跟对贵人,就肯定能成功. 这三者中找对平台更为重要,从曾国藩的人生经历便可以清晰地看出来.刚中进士时长沙的社交圈是他的第一个平台,那时的他从气质到观念 ...

最新文章

  1. 阿里云文件存储极速型NAS产品介绍
  2. XStream 用法汇总
  3. linux系统下常用或有用的系统级命令
  4. 不要把游戏当游戏,要把游戏当明星
  5. beandefinition与beanfactory
  6. 线程基础知识_线程生命周期_从JVM内存结构看多线程下的共享资源
  7. 2020年上半年美团夜宵指数发展报告
  8. 负数、原码、反码、补码
  9. 求水面面积(C语言)
  10. 一些常用的正则表达式收集
  11. 计算信源熵和香农编码C语言,Word版可编辑-信息论与编码课程设计报告统计信源熵与香农编码精心整理.doc...
  12. CrossApp的环境配置教程Windowsmac
  13. python123随机密码生成器_python实例--随机密码生成器
  14. Cocos野兽派 | 如何创造真正的优秀游戏
  15. 从《长安十二时辰》看企业中台战略
  16. The word 'classpath' is not correctly spelled解决方法
  17. 交叉熵损失函数的计算公式
  18. 量子计算机如何预知未来,刘慈欣《镜子》中量子计算机成真?科学家计划用数学预测宇宙未来...
  19. 求解二维矩形 Packing 问题的一种优美度枚举 算法的个人心得1
  20. 心法利器[71] | NLP的学习思考(新手和进阶)

热门文章

  1. 需求分析--朴朴超市需不需要会员制
  2. Fortran学习笔记(5)
  3. 基于虚拟机的黑群晖NAS+基于虚拟局域网的远程访问
  4. 求学信计算机专业英语,【向美国学校求学信范文】 求学信英语范文20篇_求学信英语范文20篇_英语求学信范文150字_东城教研...
  5. 上台演讲怎么做?这篇文章告诉你
  6. 【Unity3d Shader】颜色叠加算法
  7. 东南大学计算机保研预报名,我是一个保研成功的幸运儿,分享我的五个方法—东南大学保研经验...
  8. Windows 7 Windows Server 2008 R2 简体中文版下载 (2023 年 3 月更新)
  9. 服务器租用、服务器托管、云主机哪个好?
  10. 信号量相关问题典型案例