IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> Halcon--指针识别 -> 正文阅读

[人工智能]Halcon--指针识别


前言

基于Halcon的指针识别


一、思路

首先从原图像中选择一块多边形区域,使之包围指针部分,将该区域分割出来,作为参考的形状模板;接着确定形状模板的金字塔层的级数和对比度参数;然后创建形状模板,并检查创建出的形状模板轮廓是否理想;最后,读取检查图像进行模板匹配,从图像上获取指针形状的位置坐标和旋转角度。

二、测试–结果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三、源码

*指针识别
*清空显示窗口
dev_close_window()
*读取模板图像。这里的模板图像是单通道灰度图像,如果是彩色的,还需要做一步转换
read_image(ModelImage, 'D:/USER/Desktop/design/dataset/meter1.jpg')
*获取图像的尺寸,便于创建合适的窗口进行显示
get_image_size(ModelImage, Width, Height)
*创建窗口并设置显示参数
dev_open_window (0, 0, Width, Height, 'white', WindowHandle)
dev_display (ModelImage)
dev_set_color ('red')
dev_set_line_width (5)

*设置指针区域的多边形形状坐标
Rows := [410,308,312,327,428,410]
Cols := [135,267,283,283,143,135 ]
*创建形状多边形,该多边形区域应完全的覆盖指针所在的区域。该区域即为感兴趣区域
gen_region_polygon_filled (ROI, Rows, Cols)
*创建参考图像,从原模板图像中裁剪出多边形形状区域
reduce_domain (ModelImage, ROI, ImageROI)

*检查形状模板参数,查看金字塔层级的图像
inspect_shape_model (ImageROI, ShapeModelImages, ShapeModelRegions, 2, 50)
*显示形状模板图像。以此检查形状模板区域是否理想
dev_display (ShapeModelRegions)
*创建形状模板
create_shape_model (ImageROI, 2, 0, rad(360270), 'auto', 'none', 'ignore_global_polarity', 20, 10,ModelID)
*获取形状模板的轮廓。用于匹配成功后的显示
get_shape_model_contours (ShapeModel, ModelID, 1)

*读取要检测的图像。这里的检测图像也是单通道灰度图像,如果是彩色的,还需要做一步转换
read_image(SearchImage, 'D:/USER/Desktop/design/dataset/meter2.jpg')
*进行基于形状模板的匹配,在图中寻找到指针的位置。
*返回指针的坐标,旋转角度,以及匹配分数
find_shape_model (SearchImage, ModelID, -rad(360900), rad(360270), 0.7, 1, 0.5, 'least_squares', 0, 0.7, RowCheck, ColumnCheck, AngleCheck, Score)

*如果匹配分数达到要求,则匹配成功
if (|Score| > 0.9)
	*用于从匹配结果数据中创建一个刚体的仿射变换矩阵
	vector_angle_to_rigid (0, 0, 0, RowCheck, ColumnCheck, AngleCheck,MovementOfObject)
	*将形状模板进行仿射变换,使之显示在指针的新位置上
	affine_trans_contour_xld (ShapeModel, ModelAtNewPosition, MovementOfObject)
	*将匹配结果显示出来
	dev_display (SearchImage)
	dev_display (ModelAtNewPosition)
endif
*匹配结束,释放模板资源
clear_shape_model (ModelID)

总结

慢慢看吧~加油

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-12-11 15:43:23  更:2021-12-11 15:44:51 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 0:47:15-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码