halcon边缘检测的方法及各种方法的适用范围

目录

    • 一、边缘提取
    • 二、BLOB分析检测
    • 三、赃物检测

一、边缘提取

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/254572.shtml

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

相关文章

Oracle优化-表设计

前言  绝大多数的Oracle数据库性能问题都是由于数据库设计不合理造成的&#xff0c;只有少部分问题根植于Database Buffer、Share Pool、Redo Log Buffer等内存模块配置不合理&#xff0c;I/O争用&#xff0c;CPU争用等DBA职责范围上。所以除非是面对一个业已完成不可变更的系…

Win10远程桌面 出现 身份验证错误,要求的函数不受支持,这可能是由于CredSSP加密Oracle修正 解决方法...

升级至win10 最新版本10.0.17134&#xff0c;远程桌面连接Window Server时报错信息如下&#xff1a; 出现身份验证错误&#xff0c;要求的函数不正确&#xff0c;这可能是由于CredSSP加密Oracle修正。 解决方法&#xff1a; 运行 gpedit.msc 本地组策略&#xff1a; 计算机配置…

CMM2

原文出处&#xff1a;http://hi.baidu.com/seaweaver/blog/item/e80e7af427f674d9f2d3854a.html CMM2的六个KPA 1、需求管理 &#xff08;RM&#xff0c;Requirement Management&#xff09; 2、软件项目计划 &#xff08;SPP&#xff0c;Software Project Planning&#…

查看linux系统核数

查看linux系统核数&#xff1a; grep ^processor /proc/cpuinfo | wc -l转载于:https://www.cnblogs.com/myyan/p/5822368.html

Rsyslog 日志相关内容

[rootserver vusers_home]# rpm -ql rsyslog|more ###.so结尾为模块&#xff0c;模块有分im为输入模块&#xff0c;om 为输出模块/etc/logrotate.d/syslog/etc/pki/rsyslog/etc/rc.d/init.d/rsyslog/etc/rsyslog.conf/etc/rsyslog.d/etc/sysconfig/rsyslog/lib64/rsyslog…

MFC导出对话框类DLL的实现

1.新建基于对话框的应用程序 2.新建MFC DLL工程 3.选择MFC DLL 4.选择扩展Dll选项&#xff08;重要&#xff01;&#xff01;&#xff01;&#xff09; 5.为Dll工程添加一个MFC类&#xff0c;基类为CDialogEx 6.Dll新建的MFC 类中添加resource.h防止编译出错…

中国如何引进CMM评估,促进软件产业发展

北京软件行业协会 &#xff08;本文转载自软件工程专家网www.21cmm.com&#xff09; 一、CMM的含义及作用   CMM&#xff08;软件能力成熟度模型&#xff1a;Capability Maturity Model For Software&#xff09;是由美国卡内基梅 隆大学的软件工程研究所&#xff08;SEI&a…

关于游戏平衡性——王者荣耀英雄伤害数值参考

收集王者荣耀各个英雄的装备对技能增加的百分比&#xff0c;这样的主要目的为保证游戏的平衡性。对于技能主要包括&#xff1a;血量、物理攻击、法术攻击、物理穿透、法术穿透、暴击等。关于各个装备&#xff0c;已经列成一张excel表格&#xff0c;在这里不再详细描述表格。在这…

Swift-setValuesForKeysWithDictionary

重写 setValuesForKeysWithDictionary 那么字典中可以有的字段在类中没有对应属性 class Person : NSObject {var age :Int 0 // 重写 setValuesForKeysWithDictionary 那么字典中可以有的字段在类中没有对应属性override func setValuesForKeysWithDictionary(keyedValues…

hdu 1269 迷宫城堡(trajan判环)

题目链接&#xff1a;http://acm.hdu.edu.cn/showproblem.php?pid1269 题意&#xff1a;略 题解&#xff1a;trajan模版直接求强连通分量。 #include <iostream> #include <cstring> #include <cstdio> using namespace std; const int N 1e4 10; const i…

Arithmetic图像处理halcon算子持续更新

目录abs_diff_imageabs_imageacos_imageadd_imageasin_imageatan2_imageatan_imagecos_imagediv_imageexp_imagegamma_imageinvert_imagelog_imagemax_imagemin_imagemult_imagepow_imagescale_imagesin_imagesqrt_imagesub_imagetan_imageabs_diff_image 功能&#xff1a;计算…

身于“乱世”,我们程序员应该如何打算?

今天看了这篇文章&#xff0c; 发现自己也有点生处乱世&#xff0c;不平之感&#xff0c;但是文章的朴实却让我有了一个良好的反省&#xff0c;特此转载 分类&#xff1a; 项目管理 2011-09-04 00:58 770人阅读 评论(12) 收藏 举报 不仅要低头拉车&#xff0c;还要抬头看路。…

Activity的启动流程

Activity的启动流程 努力工作 自己平时工作接触的frameworks代码比较多&#xff0c;但真正理解的很有限&#xff0c;一直在努力分析。。我主要还是用补丁的形式来看 core/java/android/app/Activity.java | 6 core/java/android/app/ActivityManagerNative.jav…

es6--箭头函数

基本用法 ES6允许使用“箭头”&#xff08;>&#xff09;定义函数。 var f v > v; 上面的箭头函数等同于&#xff1a; var f function(v) {return v; }; 如果箭头函数不需要参数或需要多个参数&#xff0c;就使用一个圆括号代表参数部分。 var f () > 5; // 等同于…

halcon Bit图位像素处理算子,持续更新

目录bit_andbit_lshiftbit_maskbit_notbit_orbit_rshiftbit_slicebit_xorbit_and 功能&#xff1a;输入图像的所有像素的逐位与。 bit_lshift 功能&#xff1a;图像的所有像素的左移。 bit_mask 功能&#xff1a;使用位掩码的每个像素的逻辑与。 bit_not 功能&#xff1…

NYOJ题目839合并

--------------------------- AC代码&#xff1a; 1 import java.util.Scanner;2 3 public class Main {4 5 public static void main(String[] args) {6 7 8 Scanner scnew Scanner(System.in);9 10 int timessc.nextInt(); 11 …

指针的魅力

序 指针说&#xff1a;love me&#xff0c;love me&#xff01; 但是他对指针说&#xff1a;I hate u&#xff0c;I hate u&#xff01; …… 指针仅仅是作为指针&#xff0c;我们可以把它当做有用的工具&#xff0c;为我们提供便利与好处。说起工具不得不让我想起一样东西—…

python多进程

2019独角兽企业重金招聘Python工程师标准>>> python多进程 进程简介 进程是程序在计算机上的一次执行活动。当你运行一个程序&#xff0c;你就启动了一个进程。显然&#xff0c;程序是死的(静态的)&#xff0c;进程是活的(动态的)。进程可以分为系统进程和用户进程。…

halcon彩色图像颜色处理算子,持续更新

目录apply_color_trans_lutcfa_to_rgbtrans_to_rgbclear_color_trans_lutcreate_color_trans_lutgen_principal_comp_translinear_trans_colorprincipal_comprgb1_to_grayrgb3_to_graytrans_from_rgbapply_color_trans_lut 功能&#xff1a;申请使用颜色查找表。 cfa_to_rgb …

夺命雷公狗---node.js---20之项目的构建在node+express+mongo的博客项目5mongodb在项目中实现添加数据...

我们上一步就引入了mongodb了&#xff0c;那么下一步就要开始写添加数据了&#xff0c;不过有个前提是先将表单的数据处理好&#xff1a; 最基本的这部现在已经成功了&#xff0c;因为最基本的这步就是先将表单处的提交方式和提交地址给处理好&#xff0c;这里和PHP的基本上是一…