HALCON 1D Measure 算子初识

基本上1D Measure都是建立一个ROI(region of interest,感兴趣区域),然后在感兴趣区域提取出边界的测量。常见的ROI有矩形ROI和圆环ROI
下图为一个矩形ROI,中间的Profile Line为横截线,Center是行和列的坐标,Phi指定了它的倾斜角度,Length1Length2指定了它的长宽。
图1 矩形ROI

下图为一个圆环ROI,比较不一样的是它还有一个角度的概念,如伸展角度(angle extent),开始角度(angle start),等。
图2 环形ROI

通常,我们就是要确定在ROI内,图像中的边界线的具体坐标,怎么确定呢?通常是通过灰度值。如下图a,我们想测试一下管脚的长度,因为管脚本身和背景比起来是比较暗的,因此就可以通过测灰度值的方法将他们区分开来。
1355875-20180814144540087-1537352295.png

怎么测呢?实际上,我们是以Profile Line为横坐标,在每个横坐标点,做垂线,求得这条垂线上,ROI内,每个点的坐标的灰度值,取平均,作为这个横坐标点的平均灰度值。这样有管脚的地方,灰度值就会和两边都不一样(一边暗,一边亮)。

看看具体的算子:

gen_measure_rectangle2 (Row, Column, Phi, Length1, Length2, Width, Height, Interpolation, MeasureHandle)

首先通过gen_measure_rectangle2生成一个ROI,这里会产生一个MeasureHandle,即测量的句柄,用它,就可以告诉其它需要用到这个ROI的算子:"嘿,我构建了一个ROI,它叫MeasureHandle要用的话就拿去",Interpolation代表我们要用插值的方法,找到一些小数位置的灰度值,因为如果ROI不是垂直或水平的,它就可能包含很多坐标是小数的点,这些点本身是没有灰度值定义的,需要通过插值的方法算出来。

measure_pos (Image, MeasureHandle, Sigma, Threshold, Transition, Select, RowEdge, ColumnEdge, Amplitude, Distance)

通过上面得到的MeasureHandle,当然还有更早得到的Image,我们再用measure_pos 这个算子,意思是要测量(边缘)的位置。这里Sigma是进行均值滤波的参数,而要进行均值滤波的原因是,图像上可能会有噪点,影响我们对边缘的判断,用均值滤波平滑掉这些噪点,可以减少误判;Threshold是阈值,代表阈值超过多少把它当做边缘;Transition代表是如何转换的,是亮到暗还是暗到亮还是都要;Select代表可以为firstlastall,意思是你要选你一个还是最后一个还是所有检测到的边缘因为接下来的RowEdgeColumnEdge存储边缘的数组,它可以存储很多的点;Amplitude指定的是一个缩放,因为工业上还是要测量具体的值的,通过边界的坐标加上缩放的计算,可以计算出确切的距离,就存在Distance里。
类似的还有measure_pairs:

measure_pairs (Image, MeasureHandle, Sigma, Threshold, Transition, Select, RowEdgeFirst, ColumnEdgeFirst, AmplitudeFirst, RowEdgeSecond, ColumnEdgeSecond, AmplitudeSecond, IntraDistance, InterDistance)

由它测量出来的边界都是成对存在的。

转载于:https://www.cnblogs.com/drunknbeard/p/9474558.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/266329.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python可视化界面编程 pycharm_pycharm开发一个简单界面和通用mvc模板(操作方法图解)...

文章首先使用pycharm的 PyQt5 Designer 做一个简单的界面,然后引入所谓的“mvc框架”。 一、设计登录界面 下面开始第一个话题,使用pycharm的 PyQt5 Designer 做一个简单的界面。 上一篇最后,在pycharm中配置了PyQt5 Designer 和 uic&#xf…

全国计算机等级考试题库二级C操作题100套(第62套)

第62套: 给定程序中,函数fun的功能是:把形参s所指字符串中下标为奇数的字符右移到下一个奇数位置,最右边被移出字符串的字符绕回放到第一个奇数位置,下标为偶数的字符不动(注:字符串的长度大于…

编译apache过程中出现如下错误及解决办法

在编译apache的过程中出现如下错误:no SSL-C headers foundconfigure: error: ...No recognized SSL/TLS toolkit detected解决办法:安装openssl-devel转载于:https://blog.51cto.com/tibet/1153481

tensorflow学习笔记七----------卷积神经网络

卷积神经网络比神经网络稍微复杂一些,因为其多了一个卷积层(convolutional layer)和池化层(pooling layer)。 使用mnist数据集,n个数据,每个数据的像素为28*28*1784。先让这些数据通过第一个卷积层,在这个卷积上指定一个3*3*1的fe…

matlab strfind用法,findstr和strfind区别

matlab中这两个字符串查找的函数findstr(), strfind()表明上看起来用法相似,效果也相似。一. findstr(s1,s2)--在较长的字符串中查找较短的字符串出现的次数,并返回其位置,因此无论s1,s2哪个为长字符串,位置在前在后都没有关系。例…

python发邮件给女朋友代码_python实现邮件发送完整代码(带附件发送方式)

实例一:利用SMTP与EMAIL实现邮件发送,带附件(完整代码) __author__ Administrator #codinggb2312 from email.Header import Header from email.MIMEText import MIMEText from email.MIMEMultipart import MIMEMultipart import…

Ubuntu识别USB设备

参考:如何解决Ubuntu无法识别USB设备 作者:一只青木呀 发布时间:2020-08-28 21:02:00 网址:https://blog.csdn.net/weixin_45309916/article/details/108286829 目录1、U盘识别2、识别转换解决Ubuntu无法识别USB3.0方法一&#xf…

用ElasticSearch存储日志

介绍 如果你使用elasticsearch来存储你的日志,本文给你提供一些做法和建议。 如果你想从多台主机向elasticsearch汇集日志,你有以下多种选择: Graylog2 安装在一台中心机上,然后它负责往elasticsearch插入日志,而且你可…

解除单个文件的与svn服务器的关联

有些文件和个人开发环境有关不需要和svn服务器做同步,可以取消其和svn服务的关联。 右键选中要取消关联的文件,右键菜单 Tortoise SVN ---> unversion and add to ignore list 确定后,文件图标会变成一把小剪刀,说明已经…

java xml出错,Java xml出现错误 javax.xml.transform.TransformerException: java.lang.NullPointerException...

Java xml出现错误 javax.xml.transform.TransformerException: java.lang.NullPointerException解决办法:利用Java操作XML,在操作XML过程中,执行到最后一步,在利用Transformer进行XML转换时出现NullPointerException错误&#xff…

Ubuntu磁盘扩容及启动问题整理

参考:Ubuntu磁盘扩容及启动问题整理 作者:一只青木呀 发布时间: 2020-12-08 10:42:19 网址:https://blog.csdn.net/weixin_45309916/article/details/110850358 也可参照正点原子的:Ubuntu磁盘空间不足?一招…

函数求值需要运行所有线程_精读《深度学习 - 函数式之美》

1 引言函数式语言在深度学习领域应用很广泛,因为函数式与深度学习模型的契合度很高,The Beauty of Functional Languages in Deep Learning — Clojure and Haskell 就很好的诠释了这个道理。通过这篇文章可以加深我们对深度学习与函数式编程的理解。2…

IOS(常用移动终端设备) push实现通知中心

参考文章: http://blog.csdn.net/zhuqilin0/article/details/6527113 http://www.dozer.cc/2013/03/push-notifications-server-side-implement/ http://blog.sina.com.cn/s/blog_71ce775e0101b43e.html PushSharp:https://github.com/Redth/PushShar…

Ubuntu下无法看到共享文件夹的解决办法

参考:Ubuntu下无法看到共享文件夹的解决办法 作者:一只青木呀 发布时间:2020-08-07 10:09:04 网址:https://blog.csdn.net/weixin_45309916/article/details/107856157 今天早上起来突然发现共享文件夹的查看不到了,找…

MySQL提供了以下三种方法用于获取数据库对象的元数据

MySQL提供了以下三种方法用于获取数据库对象的元数据: 1)show语句 2)从INFORMATION_SCHEMA数据库里查询相关表 3)命令行程序,如mysqlshow, mysqldump 用SHOW语句获取元数据 MySQL用show语句获取元数据是最常用的方法&a…

laravel 5.1 php版本号,发行版本说明 | 序言 | Laravel 5.1 中文文档

发行版本说明由 学院君 创建于5年前, 最后更新于 11个月前版本号 #219641 views23 likes0 collects支持政策LTS版本,比如Laravel 5.1,将会提供两年的bug修复和三年的安全修复支持。这些版本将会提供最长时间的支持和维护。对于其他通用版本,只…

NYOJ-522 Interval

Interval 时间限制&#xff1a;2000 ms | 内存限制&#xff1a;65535 KB难度&#xff1a;4描述There are n(1 < n < 100000) intervals [ai, bi] and m(1 < m < 100000) queries, -100000 < ai < bi < 100000 are integers.Each query contains an inte…

实现图书增删的代码_不仅仅是图书信息管理系统

点击蓝字 关注我们不仅仅是图书信息管理系统基于双链表&#xff0c;采用面向对象编程方法制作的图书管理系统❞效果演示root用户&#xff1a;账号&#xff1a;0&#xff0c;密码&#xff1a;0普通用户&#xff1a;账号&#xff1a;1001&#xff0c;密码&#xff1a;666666图书信…

HDU1846 - Brave Game【巴什博弈】

十年前读大学的时候&#xff0c;中国每年都要从国外引进一些电影大片&#xff0c;其中有一部电影就叫《勇敢者的游戏》&#xff08;英文名称&#xff1a;Zathura&#xff09;&#xff0c;一直到现在&#xff0c;我依然对于电影中的部分电脑特技印象深刻。 今天&#xff0c;大家…

Ubuntu18.04换源更新国内源

参考&#xff1a;Ubuntu18.04更新国内源 作者&#xff1a;一只青木呀 发布时间&#xff1a;2020-08-05 10:24:11 网址&#xff1a;https://blog.csdn.net/weixin_45309916/article/details/107808268 树莓派换源博文&#xff1a;https://blog.csdn.net/zhuguanlin121/article/d…