博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
九点标定
阅读量:3962 次
发布时间:2019-05-24

本文共 1303 字,大约阅读时间需要 4 分钟。

本文适用于初学者。

首先对概念要清晰:九点标定是点的仿射变换,只是图像行列、和坐标XY的仿射关系,也就是矩阵关系。从只有XY2个坐标轴来看,只有二个方向,所以只能适用于2D。下面具体流程:

第一步:制作9个点,相机采图的时候能全部拍到即可。一般以会3X3的行列相等去制作。

1.在图像上找到9个圆的中心坐标。(二值化提取区域后排序获得区域行列坐标/使用模板匹配后排序获得行列坐标)

2.会用到的一些算子:

rgb1_to_gray (Image, GrayImage) RGB图转灰度图

mirror_image (GrayImage, ImageMirror, 'row')  图像镜像,就是把9个点的序号按照自己习惯的方式在图像上显示。

illuminate (ImageMirror1, ImageIlluminate, 101, 101, 0.5)   图像亮度(灰度)不均匀时,使用这个算子平均一下图像灰度值。

scale_image (ImageIlluminate, ImageScaled, 42.5, -4080)  缩放图像,使黑白更分明

binary_threshold (ImageScaled, Region, 'max_separability', 'dark', UsedThreshold)  二值化提取黑或提取白

创建模板的相关算子

第二步:保持9个圆点不动,使用机械手的作业工具对准9个圆的圆心位置,并保存好机械手坐标。然后把9个点的坐标按照圆的序号在生成一个一维数组变量。(一定要对好序号,就是第一步中排序后的序号和数组元素一一对应)

第三步:使用图像行列的圆心和机械手的一维数组变量,生成一个矩阵关系。

vector_to_hom_mat2d (Column, Row, X, Y, HomMat2D)   HomMat2D就是我们要的这个矩阵。

write_tuple (HomMat2D, 'D:/1012.tup')   保存矩阵使用

read_tuple ('D:/1012.tup', HomMat2D1)    读取矩阵使用

第四步:有矩阵了,就直接使用矩阵即可。(识别)使用相机去识别一个或多个新的物体,并得到行列中心,如何使用了镜像mirror_image,这里也必须使用镜像关系,就是图像要保持一致性。

affine_trans_point_2d (HomMat2D, Column1, Row1, Rx, Ry)    矩阵转换,把CR坐标转换为RxRy

第五步:很多人会认为第四步完成了,有一部分情况是没有问题。识别的物体的机械手位置不在抓取9个点的位置时,就不适用了,会偏的一塌糊涂。

Rxnew:=Rx+(当前X坐标-抓9点时X坐标)             

*Rynew:=Ry+(当前Y坐标-抓9点时Y坐标)

这个公式适应所有,有很多人会分开和9点同位置和不同位置,完全没必要这么做,记好一个公式即可。

第六步:3个重点注意事项:

1.切记镜像mirror_image。前后一定要保持图片一致。

2.行列坐标和XY坐标,前后要保持一致。

3.圆的序号,行列序号一定要和定位XY序号保持一致。

 

 

 

 

转载地址:http://veezi.baihongyu.com/

你可能感兴趣的文章
watir——上传文件
查看>>
Python之读取TXT文件的三种方法
查看>>
Python之操作MySQL数据库
查看>>
watir学习之—如何遍历页面所有的超链接
查看>>
ruby之——安装gem提示:Please update your PATH to include build tools or download the DevKit
查看>>
Selenium-Webdriver系列教程(一)————快速开始
查看>>
Selenium-Webdriver系列教程(2)———浏览器的简单操作
查看>>
Selenium-webdriver系列教程(3)———如何执行一段js脚本
查看>>
Selenium-webdriver系列教程(4)——如何定位测试元素
查看>>
Selenium-webdriver系列教程(5)———如何定位frame中的元素
查看>>
Selenium-webdriver系列教程(6)———如何捕获弹出窗口
查看>>
Eclipse(Windowns XP)下搭建Android开发环境——简介
查看>>
Android自动化工具Monkeyrunner使用(一)
查看>>
Android自动化工具Monkeyrunner使用(二)
查看>>
Android自动化工具Monkeyrunner使用(三)
查看>>
Android自动化工具Monkeyrunner使用(四)
查看>>
Android自动化工具Monkeyrunner使用(五)
查看>>
Selenium-webdriver系列教程(7)———如何处理alert和confirm
查看>>
Selenium-webdriver系列教程(8)———使用Page Object设计模式
查看>>
Python logging模块详解
查看>>