当前位置: 首页 > news >正文

halcon 模板匹配

学习模板匹配,拿自己的U盘做了个小demo:

read_image (Image,'G:/halcon练习用/center.jpg')dev_close_window()dev_open_window_fit_image(Image,0,0,-1,-1,WindowHandle)dev_update_off()dev_display(Image)* gen_rectangle1(Rectangle, 1300, 2000, 1400, 2300)*     reduce_domain(GrayImage,Rectangle,ImageReduced0)
*     dev_clear_window()
*     dev_display(ImageReduced0)rgb1_to_gray(Image,GrayImage)dev_display(GrayImage)
*     threshold(Image,Regions,100, 255)threshold(Image,Regions,0, 25)connection(Regions,ConnectedRegions)count_obj(ConnectedRegions, num)select_shape (Regions, LargestRegion, 'area', 'and', 100000, 9999999)fill_up(LargestRegion, RegionFillUp)
*     dev_display(RegionFillUp)connection(RegionFillUp,ConnectedRegions2)count_obj(ConnectedRegions2, num)select_shape (ConnectedRegions2, LargestRegion2, 'area', 'and', 100000, 9999999)*膨胀
dilation_circle(LargestRegion2, RegionDilation, 8)
count_obj (RegionDilation, NumberRegions)
*    gen_rectangle1(Rectangle, 1300, 2000, 2900, 2300)reduce_domain(GrayImage,RegionDilation,ImageReduced)*计算模板区域中心坐标
area_center (ImageReduced, Area_model, Row_model, Column_model)
*规定模板ROI_region的可变角度范围0-360,旋转角度变化为0
create_shape_model(ImageReduced,'auto',rad(0), rad(360),rad(0),['none','no_pregeneration'],'ignore_global_polarity','auto','auto',ModleID)
*将创建的模板存成指定路径的文件
write_shape_model (ModleID, 'G:/halcon练习用/u盘识别.shm')
*获取图像类型
get_image_type (ImageReduced, Type)
if (Type == 'byte')dev_display (ImageReduced)  // 如果是有效图像,显示它
elsedev_error_var (Error, 1)
endifstop ()name:=['center','left','right']for i:=0 to |name|-1 by 1read_image (ImageSample,'G:/halcon练习用/'+name[i]+'.jpg')dev_display(ImageSample)find_shape_model (ImageSample, ModleID, rad(0), rad(360), 0.1, 1, 0.5, 'least_squares', 0, 0.9, Row, Column, Angle, Score)
*     Image_Row:=[Image_Row,Row]
*     Image_Column:=[Image_Column,Column]
*     Image_Angle:=[Image_Angle,Angle]
*     Image_Score:=[Image_Score,Score]*对匹配到的中心与模板的中心求取映射关系:仿射变换 vector_angle_to_rigid(Row_model,Column_model,rad(0),Row,Column,Angle,HomMat2D)*根据映射关系求出模板对应的图像范围affine_trans_region(ImageReduced,RegionAffineTrans,HomMat2D,'nearest_neighbor')gen_contour_region_xld (RegionAffineTrans, XLD1, 'border')dev_clear_window()dev_display (XLD1)*将检测到的区域(RegionAffineTrans)保存为图片reduce_domain(ImageSample,RegionAffineTrans,ResultReduced) dev_display(ResultReduced)
endfor

图像:

很简单甚至还有点错误,但是大致思路和最后仿射变换是常用方法;

http://www.lryc.cn/news/591238.html

相关文章:

  • 高精度加法模版介绍
  • 阿里云-通义灵码:隐私保护机制—为数据安全筑起铜墙铁壁
  • USRP中心频率与采样率联合设置
  • MyBatis 之配置与映射核心要点解析
  • CPU架构、三级缓存以及内存优化屏障
  • 指针数组和数组指针的应用案例
  • 「Trae IDE 全流程实战」——从 0 下载安装,到在本地跑起一个可玩的 2048 小游戏
  • SpringBoot使用ThreadLocal共享数据
  • 永磁同步电机MTPA与MTPV曲线具体仿真实现
  • 大语言模型Gemini Deep Research 全流程解读+使用攻略
  • 杨耀东老师在ICML2025上对齐教程:《语言模型的对齐方法:一种机器学习视角》
  • 死信队列:springboot+RabbitMQ实现死信队列
  • GitHub Jekyll博客本地Win开发环境搭建
  • NumPy 数组存储字符串的方法
  • 算法提升之字符串练习-02(字符串哈希)
  • 【leetcode】852. 山脉数组的封顶索引
  • React 18 vs Vue3:状态管理方案深度对比
  • 深入理解Map.Entry.comparingByValue()和Map.Entry.comparingByKey()
  • 我爱学算法之—— 前缀和(下)
  • 第十四章 gin基础
  • 深入理解React Hooks:从使用到原理
  • Qt CMake 学习文档
  • 【安卓按键精灵辅助工具】adb调试工具连接安卓模拟器异常处理
  • QT之openGL使用(二)
  • 端到端神经网络视频编解码器介绍
  • 电脑截图软件排行榜 Windows和mac电脑截图软件TOP10
  • 基于Rust游戏引擎实践(Game)
  • ZKmall开源商城架构助力增长:多端流量聚合与用户体验
  • Web3智能合约技术论述
  • NLP-文本预处理