Halcon 基于形状的模板匹配

2023-05-16

基于形状的模板匹配(西动科技Halcon学习笔记)

主要设计流程:将彩色图像转为灰度图像,进行阈值分割,通过面积特征选择ROI区域,进行形态学处理后创建模板,创建好的模板显示在窗口左上角,需要将模板显示在原位置。再读取另一张图像进行模板匹配并显示结果。
在这里插入图片描述
Halcon代码

dev_close_window ()
dev_open_window (0, 0, 512, 512, 'black', WindowHandle)
* Image Acquisition 01: Code generated by Image Acquisition 01
read_image (Image, 'D:/机器视觉学习资料/Halcon学习/案例/模板匹配/黄绿红蓝.png')
rgb1_to_gray (Image, GrayImage)
*阈值分割
threshold (GrayImage, Regions, 87, 89)
*调用connection分割成不同的区域
connection (Regions, ConnectedRegions)
*根据面积选择特征区域
select_shape (Regions, SelectedRegions, 'area', 'and', 13963.3, 14256.9)
*填充
fill_up (SelectedRegions, RegionFillUp)
*膨胀
dilation_circle (RegionFillUp, RegionDilation, 5.5)
*reduce_domain获取特定区域region的图像,缩小图像定义域并不能缩小实际尺寸
reduce_domain (GrayImage, RegionDilation, ImageReduced)
*创建模板轮廓
create_scaled_shape_model (ImageReduced, 'auto', rad(-45), rad(90), 'auto', 0.9, 1.1, 'auto', 'auto', 'ignore_local_polarity', 'auto', 'auto', ModelID)
*获取图像轮廓
get_shape_model_contours (ModelContours, ModelID, 1)
*求中心点坐标
area_center (RegionDilation, Area, Row, Column)
*获得平移旋转的矩阵、从(00)点移动到求得中心点位置
vector_angle_to_rigid (0, 0, 0, Row, Column, 0, HomMat2D)
*模板放到原位置
affine_trans_contour_xld (ModelContours, ContoursAffineTrans, HomMat2D)
dev_display (Image)
dev_display (ContoursAffineTrans)
* Image Acquisition 02: Code generated by Image Acquisition 02
read_image (Image, 'D:/机器视觉学习资料/Halcon学习/案例/模板匹配/多种图形.png')
rgb1_to_gray (Image, GrayImage1)
find_scaled_shape_model (GrayImage1, ModelID, rad(-45), rad(90), 0.9, 1.1, 0.5, 1, 0.5, 'least_squares', 0, 0.9, Row1, Column1, Angle, Scale, Score)
for i:=0 to |Score|-1 by 1
    hom_mat2d_identity (HomMat2DIdentity)
    hom_mat2d_translate (HomMat2DIdentity, Row1[i], Column1[i], HomMat2DTranslate)
    hom_mat2d_rotate (HomMat2DTranslate, Angle[i], Row1[i], Column1[i], HomMat2DRotate)
    hom_mat2d_scale (HomMat2DRotate, Scale[i], Scale[i], Row1[i], Column1[i], HomMat2DScale)
    affine_trans_contour_xld (ModelContours, ContoursAffineTrans1, HomMat2DScale)
    dev_display (ContoursAffineTrans1)
endfor
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Halcon 基于形状的模板匹配 的相关文章

  • 可以带到2015年的几点思考

    1 自己的事情永远得自己出头 我从小就是个很独立的人 我不知道这种独立是什么时候培养起来的 xff0c 但清楚的记得一件事情 上小学那会儿 xff0c 有一年母亲生病了 xff0c 在医院 xff0c 家里就我一个人 xff0c 有时候 x
  • 纪事2011—中国,建大,家,我

    前言 2011 年就要真的成为我记忆了 xff0c 我一直在想该怎样总结我的2011 xff0c 我的2011留下的是什么 xff0c 收获的又是什么 xff0c 这365天的句号我该怎么画上 xff0c 是圆是扁 xff0c 还是有缺口
  • 用java做的一个小游戏—黑白反斗棋(适合菜鸟)

    用Java做的一个小游戏 xff0c 黑白反斗棋 xff0c 我玩过了5 5和10 10的 是学习之后做的 xff0c 不是自己原始开发的 import java awt Color import java awt FlowLayout i
  • 我的精神分裂——普通青年用二-B的方式走文艺的范儿

    一直以来都是以一种低沉的文笔在写些我的垃圾生活 xff0c 垃圾感想 xff0c 每次都会放那些特定的音乐 xff0c 那是一种心境 xff0c 那些音乐带着我的手在敲动 今天我想换种音乐 xff0c 猜猜我在放什么音乐 xff0c 很Hi
  • 读书随笔(1)——《计较是贫穷的开始》

    xff08 读书之后写感 xff0c 本该是读书之后自然的一个延续 xff0c 但我却很少这样了 xff0c 这不能说是一个极其坏的习惯 xff0c 虽不知道我究竟能不能改了 xff0c 但还是希望能尽可能的写写 xff0c 对自己想法有个
  • 2012年终随笔

    时至年终 xff0c 按我此前的惯例 xff0c 该写篇年终总结性的文章 xff0c 在之前末日说沸沸扬扬的时候 xff0c 我在想是否该早点写 xff0c 写个末日遗言什么的 xff0c 但还是没有写 xff0c 觉得如果真的末日来临 x
  • Tomcat多端口映射配置

    1 多端口映射配置 在server xml中 xff0c 找到 lt Connector gt 标签 xff0c 默认情况下会有一个 8080 端口的 lt Connector gt 标签 xff1a lt Connector port 6
  • 10个艰难的Java面试题与答案

    10个最难回答的Java面试题 这是我收集的10个较难回答的 Java 面试题 这些问题主要来自 Java 核心部分 不涉及 Java EE 相关问题 这些问题都是容易在各种 Java 面试中被问到的 1 为什么 wait xff0c no
  • Spring Security 5.x兼容多种密码加密方式

    1 spring security PasswordEncoder spring security 5不需要配置密码的加密方式 xff0c 而是用户密码加前缀的方式表明加密方式 xff0c 如 xff1a MD5 88e2d8cd1e92f
  • linux把进程或线程绑定到特定cpu核上

    绑定进程到cpu核上运行 查看cpu有几个核 使用cat proc cpuinfo 查看cpu信息 xff0c 如下两个信息 xff1a processor xff0c 指明第几个cpu处理器cpu cores xff0c 指明每个处理器的
  • Suse重启samba指令

    重启前先查看后台进程 linux jzp3 home w210412 ps aux grep smbd root 4400 0 0 1 2 308428 22372 Ss 18 23 0 00 usr sbin smbd D F root
  • uIP和LwIP背后的那个牛逼男人

    在公众号给大家介绍过Uip和LwIP xff0c 如果使用过这两种TCP IP协议栈 xff0c 那么你一定会熟悉一个人Adam Dunkels亚当 邓克尔 瑞典计算机科学院的教授 xff0c 这两种开源的协议栈都出自他手 xff0c 现在
  • 一张表看懂uIP和lwIP的区别

    我们给大家介绍过目前比较流行的开源TCP IP开源协议栈uIP和lwIP 这两种都是由瑞典计算机科学研究院开发的 xff0c 广泛应用于嵌入式系统中 因为全功能的TCP IP协议是很庞大的 xff0c 在资源紧张的嵌入式上是很难实现的 xf
  • 小猿助你freeRTOS驱动开发

    主要介绍在移植好的基于NXP之kinetis K64 43 freeRTOS平台上添加Modbus驱动 对freeRTOS不懂或者移植不懂的可以看看之前公众号的文章 准备工作 xff1a 1 xff0c 基于之前移植好的K64 43 fre
  • 告诉过你PID很重要,你不听

    曾经在公众号 xff0c 多次提到在控制系统中经常用到的PID控制 xff0c 也在培训中讲过PID的应用和在软件中的实现以及调试 xff0c 但是现实中还是有很多工程师对PID很陌生 xff0c 如果你是搞电力电子 xff0c 电力变换
  • Windows 使用 VNC 远程连接 Ubuntu 桌面版

    前言 工作需要使用 Windows 远程桌面版的 Ubuntu xff0c 原来使用的 TeamViewer 现在经常被检测为商业用途 xff0c 就很麻烦 因此 xff0c 现在转战使用 VNC 进行远程 使用步骤参考地址 xff1a 法
  • IP第十天笔记 - - - BGP

    BGP 边界网关协议 AS 自治系统 由单一机构或组织管理的一系列IP网络及其设备的集合 1 网络范围太大 xff0c 协议跑不过来 xff0c 需要进行划分 xff1b 2 自治管理 为了方便区分和标定不同的AS xff0c 我们给每一个
  • Makefile(1)

    1 前言 有幸拜读了http blog csdn net haoel article details 2888 http www cnblogs com Anker p 3242207 html http www groad net bbs
  • 解决vnc客户端不能拷贝粘贴

    在vnc窗口里输入如下命令 vncconfig nowin amp 在一个node的vnc里发现vncconfig nowin amp 不工作 xff0c 但是vncconfig amp 工作 https blog csdn net qq
  • shell的等号两边不能有空格

    shell的等号在赋值的时候两边不能有空格 xff0c 在比较的时候两边必须有空格

随机推荐

  • uCOS上下文切换,PendSV中断函数

    摘自 xff1a http www stmcu org module forum thread 384142 1 1 html 介绍一 xff1a 移植详解1和2中主要讲了移植需要用到的基础知识 xff0c 本文则对具体的移植过程进行介绍
  • Eigen稀疏线性求解

    在 Eigen 中 xff0c 当系数矩阵稀疏时 xff0c 有多种方法可用于求解线性系统 由于此类矩阵的特殊表示 xff0c 应特别注意以获得良好的性能 有关 Eigen 中稀疏矩阵的详细介绍 xff0c 请参阅稀疏矩阵操作 此页面列出了
  • Eigen关于稀疏矩阵

    处理和解决稀疏问题涉及各种模块 xff0c 总结如下 xff1a 模块 头文件 内容 SparseCore include lt Eigen SparseCore gt SparseMatrix 和 SparseVector 类 矩阵组装
  • Eigen构造稀疏矩阵

    Eigen构造稀疏矩阵 xff0c 这里我们对稀疏矩阵采用三元组的存储方式 xff0c 即用 i j value i j 这样的组合把非零元的位置和值表示出来 废话不多说 xff0c 我们直接上例子 include 34 iostream
  • cmake CMakeLists.txt 命令 add_compile_options、add_definitions、target_compile_definitions、build_command

    add compile options 增加源文件的编译选项 add compile options lt option gt 为当前路径和下层路径的目标增加编译器命令行选项 xff0c 选项在此命令被调用后添加 查看文档中关于路径和目标的
  • linux curl编译 arm交叉编译

    虚拟机环境 ubuntu12 04 开发板 EasyARM i MX280A xff1a 64m sdram 128M nandflash 运行官方提供的Linux 2 6 35 3内核linux 首先 xff0c 如果需要使用curl解析
  • c++中 双冒号作用

    1 作用域符号 的前面一般是类名称 xff0c 后面一般是该类的成员名称 xff0c C 43 43 为例避免不同的类有名称相同的成员而采用作用域的方式进行区分 如 xff1a A B表示两个类 xff0c 在A B中都有成员member
  • 解决:CUDA安装程序不成功

    解决 xff1a CUDA安装程序不成功 报错如下分析原因解决方法 报错如下 分析原因 由于电脑里的原版本是11 2 xff0c 可能降到11 0会出现错误 xff0c 因此安装不成功 xff01 解决方法 在 Driver compone
  • linux shell awk BEGIN END 处理文本之前之后执行操作 简介

    目录 简介 1 最简单的action 既没有pattern 有没有options 2 awk是逐行处理 2 1 输出整行 2 2 输出最后一列 2 3 输出倒数第二列 3 pattern 3 1 begin 简单语法 3 2 不添加输入文件
  • ROS使用自定义的msg发送topic

    1 新建工作空间 span class token function mkdir span p catkin ws src span class token function cd span catkin ws catkin make 2
  • snorkel提取关系实验一——英文新闻里面提取配偶

    参考https github com HazyResearch snorkel 代码地址 xff1a https github com HazyResearch snorkel blob master tutorials intro Int
  • 搭建飞控开发环境:ubuntu下pixhawk开发环境搭建(PX4开发)

    搭建飞控开发环境 xff1a ubuntu下pixhawk开发环境搭建 xff08 PX4开发 xff09 关于开发环境 xff0c 可以选择Windows Linux或者Mac xff0c 若选择Linux xff0c 建议安装Ubunt
  • yolov3 批量处理图片获得检测框坐标

    前言 yolov3实现检测 xff0c 需要所有检测框的坐标实现定位 在darknet master项目下实现检测框坐标的获取 前提 系统 xff1a Windows 语言 xff1a C 项目 xff1a darknet master 开
  • Halcon C#联合编程的一种异常的解决方法

    源码为超人视觉联合C 启蒙班中的示例代码 span class token keyword using span span class token namespace System span span class token punctua
  • HOperatorSet.GrabImageAsync(out ho_Image, hv_AcqHandle, -1);出现异常

    Halcon C 联合编程中 xff1a HOperatorSet GrabImageAsync out ho Image hv AcqHandle 1 语句出现异常 源码如下 xff1a span class token keyword
  • Halcon联合C#实现相机实时显示采集图像

    窗体如图 xff1a 本窗体功能为打开相机 相机的实时显示采集 关闭相机 HALCON代码 xff1a span class token operator span Image Acquisition span class token nu
  • C#在Winform中显示当前日期、时间、星期

    C 在Winform中显示当前日期 时间 星期 span class token comment 加载窗体时 span span class token class name span class token keyword string
  • Halcon基于灰度的颜色识别

    程序流程如下 xff1a 如下图所示 xff0c 首先读入图像 xff0c 将彩色图像转为灰度图像 xff0c 进行阈值分割 xff0c 利用connection算子将每个区域分离开 xff0c 再求取中心点坐标 xff0c 将颜色名称显示
  • 【Kubernetes实战】K8S集群Pod异常状态排查

    机缘 本文旨在帮助朋友们能快速定位 以最简单可行只法解决遇到的问题 xff0c 希望您能举一反三 xff0c 篇幅有限不能详尽 xff0c 见谅 内容概括 xff1a 实战项目经验 如何有效减少排查解决问题的时间 xff1f 尤其是有些问题
  • Halcon 基于形状的模板匹配

    基于形状的模板匹配 xff08 西动科技Halcon学习笔记 xff09 主要设计流程 xff1a 将彩色图像转为灰度图像 xff0c 进行阈值分割 xff0c 通过面积特征选择ROI区域 xff0c 进行形态学处理后创建模板 xff0c