Halcon实现边缘提取

一、边缘提取

 

1、设置ROI兴趣区域

2、快速二值化,并连接相邻区域。
这样做的目的是进一步减少目标区域,通过二值化将目标区域大概轮廓提取出来

3、提取最接近目标区域的轮廓
常用函数有boundary,gen_contour_region_xld

4、根据自己的需求提取需要的初步轮廓

5、将初步提取的初步轮廓进行膨胀操作

6、将膨胀后的区域和原图进行减操作(在这步之前有可能需要对原图进行高斯滤波)。这样就能得到只
有边缘的真实图像
 

7、用canny或其他算子(根据需要)提取亚像素轮廓,一般使用edges_sub_pix函数

 

8、处理和计算
得到真实的边缘XLD后你可能需要进一步处理得到你想要的线、弧等。
你可能用到的函数segment_contours_xld(分割)  union_collinear_contours_xld(联合相邻或相同
角度直线)select_contours_xld(提取想要的轮廓) union_cocircular_contours_xld(联合相同圆)
等等
得到轮廓后如果你不知道怎么处理后得到你想要的东西(线、弧、圆、角、矩形)你都可以将轮廓转化
为点,然后用点集合来拟合任何你想要的东西。

二、BLOB分析检测(前面一篇有详细讲解,本骗只讲思路)

(1)应用ROI,可以使Blob分析加速。
(2)匹配ROI区域或图像,详将GUIDEIIB以形状为基础的匹配。
(3)校正图像<经常用来去除镜头畸变或把图像转换到参考点视角,如双目视觉时的图像校正>
(4)图像前处理
(5)引用分割参数
(6)分割图像
(7)区域处理
(8)特征提取
(9)把提取的结果转换到世界坐标中
(10)结果可视化。

    相机的标定和矫正不在本篇的学习之中。直接讲提取BLOB

 

1、一般先使用均值滤波去噪

2、利用去噪图像与平滑图像的OFFSET提取区域边缘,常见函数dyn_threshold 

3、提取连通域dyn_threshold 

4、根据形状或是灰度等特征来提取你想要的blob。
另一种方法就是分水岭算法
watersheds (ImageGauss, Basins, Watersheds)/
 

1、对图像进行高斯滤波

 

还有的图形更简单直接二值化就可以啦
bin_threshold (Fin, Dark) //分割图像,输出Dark区域,Fin已经被处理为区域//
difference (Fin, Dark, Background) //计算Fin与Dark两个区域的补集//
还有个函数应该说是让你高兴还是沮丧呢,以为一个函数就可以直接提取你想要的,但是参数很难调整
    lines_gauss(Image, Lines, 6, 0.3, 0.5, 'light', 'true', 'gaussian', 'true')
三、赃物检测
1、得到两个不同高斯标准差的高斯积卷
2、对原始图像进行傅里叶变换'to_fre'
3、用之前的积卷对图像做积卷滤波
4、傅里叶反变换‘from_fre’

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

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

相关文章

软件工程网络15个人阅读作业1 201521123038 游舒婷

软件工程网络15个人阅读作业1 201521123038 游舒婷 1.博客园地址 sakurai3104 2.码云地址 sakurai3104 3.阅读与思考 &#xff08;1&#xff09;回想一下你初入大学时对网络工程专业的畅想 当初你是如何做出选择网络工程专业的决定的&#xff1f; 填报志愿的时候&#xff0c;大…

18LaTeX学习系列之---LaTeX的参考文献

目录 目录前言&#xff08;一&#xff09;简单的参考文献1.说明2.源代码3.输出效果&#xff08;二&#xff09;以文件管理的方式1.说明&#xff1a;2.源代码&#xff1a;3.输出效果&#xff08;三&#xff09;直接从源网站获取1.说明&#xff12;.操作目录 本系列是有关LaTeX的…

Vue 2.0 v-for 响应式key, index及item.id参数对v-bind:key值造成差异研究

Vue 2.0 v-for 响应式key, index及item.id参数对v-bind:key值造成差异研究 在github上阅览README.md以获得最佳阅读体验&#xff0c;点这里 v-for响应式key, index及item.id参数对v-bind:key值造成差异研究 实验背景 通常情况下&#xff0c;我们渲染一个li列表&#xff0c;采用…

halcon edges_sub_pix算子

转载http://blog.51cto.com/juwen/133003 介绍一下Canny算子&#xff1a; 使用累计直方图计算两个阀值。凡是大于高阀值的一定是边缘&#xff1b; 凡是小于低阀值的一定不是边缘&#xff1b;如果检测结果大于低阀值但又小于高阀值&#xff0c;那就要看这个像素的邻接像素中有…

Python 基础(常用数据结构)

常用数据结构 1&#xff09;元组 元组是一种静态的数据结构&#xff0c;无法修改&#xff0c;若要修改只能重新生成新的元组。 输出结果&#xff1a; 元组元素的获取是通过索引值去获得的&#xff1b;例如上面的tup1[0]返回apple&#xff1b;另外你可以直接把tup1一次性赋给多个…

Java IO(二)——RandomAccessFile

一、RandomAccessFile RandomAccessFile类可以说是Java语言中功能最为丰富的文件访问类&#xff0c;它提供了众多的文件访问方法。RandomAccessFile类支持"随机访问"方式&#xff0c;可以跳转到文件的任意位置处读写数据。要访问一个文件的时候&#xff0c;不想把文件…

halcon select_shape_xld按区域大小描绘xld

常用与对xld进行以面积、长、宽进行XLD的选择操作。 select_shape_xld(XLD : SelectedXLD : Features, Operation, Min, Max : ) XLD&#xff1a;需要选择的xld SelectedXLD:选择后的xld Features:面积、长、高等 Operation&#xff1a;and、or等 Min&#xff1a;最小值门…

工业三防手持终端如何选

物联宇手持终端作为工业级的数据采集器&#xff0c;目前[]()已广泛应用在物流快递、生产制造、零售、医疗、公共事业等领域。由于工业环境的复杂性&#xff0c;手持终端在恶劣的环境下作业&#xff0c;在性能、稳定性、电池耐用性上的要求都较高&#xff0c;同时还必须采用一些…

centos7 安装python3

1.查看是否已经安装Python CentOS 7.2 默认安装了python2.7.5 因为一些命令要用它比如yum 它使用的是python2.7.5。 使用 python -V 命令查看一下是否安装Python 然后使用命令 which python 查看一下Python可执行文件的位置 可见执行文件在/usr/bin/ 目录下&#xff0c;切换到该…

centos svn 的搭建

一. SVN 简介 Subversion(SVN) 是一个开源的版本控制系統, 也就是说 Subversion 管理着随时间改变的数据。 这些数据放置在一个中央资料档案库(repository) 中。 这个档案库很像一个普通的文件服务器, 不过它会记住每一次文件的变动。 这样你就可以把档案恢复到旧的版本, 或是浏…

halcon边缘提取和检测常用方法

转自&#xff1a;http://blog.csdn.net/Bob_qiuxu/article/details/46924969 一、边缘提取 1、设置ROI兴趣区域 2、快速二值化&#xff0c;并连接相邻区域。 这样做的目的是进一步减少目标区域&#xff0c;通过二值化将目标区域大概轮廓提取出来 3、提取最接近目标区域的轮廓…

oracle sqlplus常用命令

转自&#xff1a;https://www.cnblogs.com/wdx8927304/p/7927613.html 一、sys用户和system用户Oracle安装会自动的生成sys用户和system用户(1)、sys用户是超级用户&#xff0c;具有最高权限&#xff0c;具有sysdba角色&#xff0c;有create database的权限&#xff0c;该用户默…

使用css绘制小三角

<div style"width:0;height:0;overflow: hidden;border-top:4px solid transparent;border-left:4px solid transparent;border-right:4px solid transparent;border-bottom:4px solid red; "></div>转载于:https://www.cnblogs.com/boonook/p/8570442.h…

C#与halcon联合开发——内存溢出

1.对所以的局部零时变量HObject类的使用前后都加Dispose(); 2.对全局的HObject类变量进行如下定义 HObject liveImage null;HObject ExpGet_liveImage(){return liveImage;}void ExpSet_liveImage(HObject obj){if (liveImage ! null)liveImage.Dispose();liveImage obj.Cop…

点击跳转到QQ聊天界面

<!--//需要添加好友验证--><a href"tencent://message/?uinQQ号码&Site&Menuyes"><img src"需要点击的图片" width"80"/></a><!--不需要添加好友验证--><a href"tencent://message/?Menuyes&am…

学习React的一知半解

① 初探 HMTL的渲染过程 ​ 这个结构化文本就是 HTML 文本&#xff0c; HTML 中的每个元素都对应 DOM中某个节点&#xff0c;这样&#xff0c;因为 HTML 元素的逐级包含关系&#xff0c; DOM 节点自然就构成了一个树形结构&#xff0c;称为 DOM 树 。 ​ 浏览器为了渲染 HTML 格…

DataTable 转为ListT集合

public static List<T> HubbleTableToList<T>(this DataTable dt) where T:Class{List<T> _list new List<T>();if (dt null) return _list;T model;foreach (DataRow dr in dt.Rows)//进行循环dataTable行数据{model Activator.CreateInstance<…

工业相机与镜头分辨率匹配

// 转自 奥普特讲述工业相机与镜头分辨率匹配的技术方案 随着机器视觉行业的发展&#xff0c;为了更好的满足广大客户选配合适镜头的需求&#xff0c;奥普特自动化科技有限公司为您简述工业相机如何选配合适的镜头&#xff0c;以及在相机与镜头的分辨率匹配方面的技术方案。 …

微信分享

<?php /*** Description of WxShare*微信分享* author xinjun*/ namespace Controller\Wx;use Controller\Home\HomeBase; use Model\Wx\UserModel; use Model\Wx\TokenModel; use Framework\Net\Request;class WxShare extends HomeBase {public function __construct(){p…

工业相机的靶面大小

在机器视觉中&#xff0c;工业相机是一种比较重要的配件。而在工业相机中&#xff0c;图像传感器又是最最关键核心的东西。而图像传感器的靶面的大小&#xff0c;往往直接关系到成像的质量。通常来讲&#xff0c;图像的成像质量与像素的大小成正比。这也就意味着&#xff0c;同…