Halcon模板匹配

news2024/11/17 4:25:53

halcon 创建模板

1、先用摄像头读取一张图片
2、在图片上画出模板
3、连续读取图片,进行模板匹配

dev_close_window ()

* Image Acquisition 01: Code generated by Image Acquisition 01
open_framegrabber ('GigEVision2', 0, 0, 0, 0, 0, 0, 'progressive', -1, 'default', -1, 'false', 'default', 'b0b35368a72b_GEV_MVCS00410GM', 0, -1, AcqHandle)
grab_image_start (AcqHandle, -1)
*读取图像并获取其宽高
grab_image_async (Image, AcqHandle, -1)
dev_open_window (0, 0, 512, 512, 'black', WindowHandle)
* median_image (Image, ImageMedian, 'circle', 6, 'mirrored')
get_image_size (Image, Width, Height)
dev_open_window (0, 0, Width, Height, 'black', WindowHandle1)
dev_set_draw ('margin')
dev_set_line_width (3)
dev_display (Image)
draw_rectangle1 (WindowHandle1, Row11, Column11, Row2, Column2)
gen_rectangle1 (Rectangle, Row11, Column11, Row2, Column2)
* gen_rectangle1 (Rectangle, 30, 20, 100, 200)
dev_display(Rectangle)
reduce_domain (Image, Rectangle, ImageReduced)
dev_open_window (0, 800, 512, 512, 'black', WindowHandle)
dev_set_color ('yellow')
dev_display (ImageReduced)
*创建模板
inspect_shape_model (ImageReduced, ModelImages, ModelRegions, 4, 30)
dev_display (ModelImages)
area_center (ModelRegions, Area, Row, Column)
count_obj (ModelImages, Number)
for i:=1 to Number by 1
    if(Area[i-1]>=15)
        Number:=i
    endif
endfor

* create_shape_model (ImageReduced, 'auto', -0.39, 0.79, 'auto', 'auto', 'ignore_global_polarity', 'auto', 'auto', ModelID)
* create_shape_model (ImageReduced, 'auto', -0.39, 0.79, 'auto', 'auto', 'use_polarity', 'auto', 'auto', ModelID)
create_ncc_model (ImageReduced, 'auto', -0.39, 0.79, 'auto', 'use_polarity', ModelID)
* get_shape_model_contours (ModelContours, ModelID, 1)

dev_open_window (0, 800, 512, 512, 'black', WindowHandle)
while (true)
    grab_image_async (Image, AcqHandle, -1)
    
    dev_display (Image)
*     find_shape_model (Image, ModelID, -0.39, 0.79, 0.5, 1, 0.5, 'least_squares', 0, 0.5, Row3, Column3, Angle, Score)
    find_ncc_model (Image, ModelID, -0.39, 0.79, 0.8, 1, 0.5, 'true', 0, Row3, Column3, Angle, Score)
    if(Score>0)
        set_tposition (WindowHandle, Row3, Column3)
        set_font (WindowHandle, '微软雅黑'+'-Normal-34')
        write_string (WindowHandle, Score)
        
    endif
    
    if(Score>0.5)
        vector_angle_to_rigid (Row3, Column3, Angle, Row3, Column3, Angle, HomMat2D)
*         affine_trans_contour_xld (ModelContours, ContoursAffineTrans, HomMat2D)
        gen_rectangle2 (Rectangle1, Row3, Column3, Angle, 100, 20)
        dev_set_draw ('margin')
*         dev_display (ContoursAffineTrans)
        dev_set_color ('red')
        dev_display (Rectangle1)
        
    endif
    
endwhile
close_framegrabber (AcqHandle)
clear_shape_model (ModelID)


在这里插入图片描述

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

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

相关文章

UI 自动化测试框架:PO 模式+数据驱动 【详解版】

目录 1. PO 设计模式简介 什么是 PO 模式? PO 模式的优点 2. 工程结构简介 工程结构 框架特点 3. 工程代码示例 page 包 action 包 business_process 包 util 包 conf 包 1. PO 设计模式简介 什么是 PO 模式? PO(PageObject&am…

docker 配置 gpu版pytorch环境--部署缺陷检测--Anomalib

目录 一、docker 配置 gpu版pyhorch环境1、显卡驱动、cuda版本、pytorch cuda版本三者对应2、拉取镜像 二、部署Anomalib1、下载Anomalib2、创建容器并且运行3、安装Anomalib进入项目路径安装依赖测试: 一、docker 配置 gpu版pyhorch环境 1、显卡驱动、cuda版本、p…

mac安装运行superset及踩坑解决过程

介绍 Apache Superset 是一个现代的企业级商业智能 Web 应用程序。它快速、轻量、直观,并加载了各种选项,使所有技能的用户都可以轻松探索和可视化他们的数据,从简单的饼图到高度详细的 Deck.gl 地理空间图表。 安装 首先安装自制homebrew安…

Zabbix之SNMP的OID获取

在配置zabbix监控的时候,配置监控项最为麻烦,一般我们都会套用模板,这种方式比较简单,但是有些设备就是没有现成的zabbix模板,怎么办? 今天我们使用MIB Browser来获取设备SNMP的OID,然后加入zabbix 。 1.什么是MIB Browser SNMP客户端工具MIB Browser, 全名iReasonin…

Docker 安装MySQL(主从复制)

1、新建主服务器容器实例3307 docker run -p 3307:3306 --name mysql-master \ -v /mydata/mysql-master/log:/var/log/mysql \ -v /mydata/mysql-master/data:/var/lib/mysql \ -v /mydata/mysql-master/conf:/etc/mysql \ -e MYSQL_ROOT_PASSWORDroot \ -d mysql:5.7 2、进入…

二、vue2脚手架-组件化开发

| vue中的图片打包后会转换为base64格式 组件的使用 1.创建组件:component文件夹中创建HelloWorld.vue文件 2.在app.vue中引入组件 组件间的通信/传值(常用) 一、prop父传子 1.App.vue中的引入组件中创建需要传递的数据 2.在子组件中接…

LMS软件打开方式+激振器使用说明(笔记)

1.直接打开会报错 2.需要找到rlm.exe,打开此软件后再打开LMS软件 注:有时候会有进程残留,需要在任务管理器里结束LMS.exe或lms.exe或rlm.exe才能打开软件 3.激振器使用说明 前端接out1/out2口,功放接AC输入 3.1 设置参考点 3.2 …

记一次逆向某医院挂号软件的经历

背景 最近家里娃需要挂专家号的儿保,奈何专家号实在过于抢手,身为程序员的我也没有其他的社会资源渠道可以去弄个号,只能发挥自己的技术力量来解决这个问题了。 出师不利 首先把应用安装到我已经 Root 过的 Pixel 3 上面,点击应…

共享剪切板小工具

共享剪切板小工具 使用场景:手机/平板/其他设备发送消息到电脑剪切板。使用于电脑不能联网或者不方便使用微信等其他方式发送文字。例如:不能跳出当前页面可以通过其他设备直接发送到剪切板上,ctrlV 完美 使用限制:目前仅支持在局…

大数据——Spark SQL

1、Spark SQL是什么 Spark SQL是Spark中用于处理结构化数据的一个模块,前身是Shark,但本身继承了前身Hive兼容和内存列存储的一些优点。Spark SQL具有以下四个特点: 综合性(Integrated):Spark中可以加入SQL查询,也可…

啥子是DOM???总听,不晓得啥

远古时代,浏览器加载完HTML页面就没了,也就是加载一个文本。 但是之后JS出现,要修改HTML文本,这么大的文本,你咋晓得要修改那个地方?就算修改完了浏览器还要在重新解析加载一遍,耗时耗性能啊&a…

oracle11g-图形安装(centos7)

目录 一.环境准备1.关闭防火墙2.关闭SELINUX3.配置本地yum源4.安装ORACLE先决条件的软件包5.修改LINUX的内核文件6.添加下列参数到/etc/security/limits.conf7.添加下列条目到/etc/pam.d/login8.环境变量中添加下列语句9.创建文件目录和相应的用户10.配置oracle用户的环境变量1…

Java笔记:垃圾回收

1 判断算法垃圾 主要是2种:引用计数法和根搜索算法 1.1 引用计数法( Reference Counting) 1. 概念 给对象中添加一个引用计数器,每当有一个地方引用它时,计数器值就加1:当引用失效时,计数器值…

【Linux】系统编程生产者消费者模型(C++)

目录 【1】生产消费模型 【1.1】为何要使用生产者消费者模型 【1.2】生产者消费者模型优点 【2】基于阻塞队列的生产消费者模型 【2.1】生产消费模型打印模型 【2.2】生产消费模型计算公式模型 【2.3】生产消费模型计算公式加保存任务模型 【2.3】生产消费模型多生产多…

行行AI人工智能大会 | LTD荣获“AI强应用创新TOP50代表企业”

LTDAI重新定义下一代网站。9月20日,由行行AI和见实科技、梅花创投联合主办,以“强应用多模型——人工智能落地大潮”为主题的“2023年度见实大会”在京顺利召开。 9月20日,由行行AI和见实科技、梅花创投联合主办,以“强应用多模型…

python使用apscheduler每隔一段时间自动化运行程序

apscheduler使用比较简单,每隔一段时间自动化运行的步骤是: 创建调度器scheduler BlockingScheduler()添加任务scheduler.add_job(函数名, interval, minutes30) # 每隔30分钟运行一次直接执行:scheduler.start()示例代码 from datetime i…

一花落,万物生,AIGC为国货复兴注入新活力

在最近的商业新闻中,国货们发“花难财”的热度持续在涨,“花西子”曾经是中国国货的代表之一,以其独特的美妆产品而闻名于世。然而,近期因为李佳琦“79块钱哪里贵了”事件的原因,让不少网友扒出这支79的眉笔算下来一克…

BeanUtils.copyProperties的使用场景

1. 常见场景 我们如果有两个具有很多相同属性名的JavaBean对象a和b,想把a中的属性赋值到b,例如 接口中将接收到的前端请求参数XxxReqVo,我们想把这个入参转化为XxxQuery对象作为数据库的查询条件对象 传统做法是手动set,即 XxxBean xxxBea…

算法笔记——循环链表

带环链表 算法题中,会有一种题目让我们去判断链表里的是否有循环。 力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 这里就需要我们要用快慢指针来进行搜索,直接提供代码 class Solution { public:bool hasCycle(ListNode *…

zabbix自定义监控、钉钉、邮箱报警

目录 一、实验准备 二、安装 三、添加监控对象 四、添加自定义监控项 五、监控mariadb 1、添加模版查看要求 2、安装mariadb、创建用户 3、创建用户文件 4、修改监控模版 5、在上述文件中配置路径 6、重启zabbix-agent验证 六、监控NGINX 1、安装NGINX&#xff0c…