农村建设网站,外贸建站与推广,企业网站开发期末报告,个人网站建设培训9点标定应用流程 前置条件#xff0c;相机焦距#xff0c;视野固定高度和角度#xff0c;光源光强度固定。 移动机械手#xff0c;使用螺丝批头#xff0c;在视野范围内的白纸上#xff0c;点九个点#xff0c;记录每个点位的位置#xff0c;每个点位的顺序要和图像上获…9点标定应用流程 前置条件相机焦距视野固定高度和角度光源光强度固定。 移动机械手使用螺丝批头在视野范围内的白纸上点九个点记录每个点位的位置每个点位的顺序要和图像上获取的圆心数组顺序一致此时得到9个点的世界坐标x和y。位置记录完成后机械手返回拍照位置。将步骤1中9个点图片拍摄下来。Halcon 导入图片对图片进行操作 灰度化灰度筛选填充圆中缺失开操作将圆形分离出来根据类圆特征获取圆形对获取到的每个圆形进行获取其最小外接圆生成圆心坐标和半径 已知机械世界坐标和图片上的点位像素坐标根据公式得出偏移对象后续根据实际图片中定位的目标像素坐标和偏移图像即可换算出机械手应该移动的实际机械坐标。
示例图片
dev_set_color(red)
read_image (Image, O:/草稿/test.jpg)rgb1_to_gray (Image, GrayImage)
threshold (GrayImage, Regions, 13, 71)*填充缺失
fill_up_shape (Regions, WiresFilled, area, 1, 100)*开操作 腐蚀和膨胀的结合即先腐蚀后膨胀
opening_circle (WiresFilled, Balls, 15.5)connection (Balls, SingleBalls)*找到具有目标特征的形状这边填写的参数是 ‘circularity’ 就是类圆的图形
select_shape (SingleBalls, IntermediateBalls, circularity, and, 0.85, 1.0)*确定这些圆形区域的最小外接圆并将输出的坐标和半径做处理后输出
smallest_circle (SingleBalls, Row, Column, Radius)*生成 虚拟机械坐标 行往下偏移80
WorldRow : []
WorldCol :[]for Index : 0 to |Row|-1 by 1WorldRow[Index] : Row[Index]80WorldCol[Index] : Column[Index]gen_circle (Circle, WorldRow[Index], WorldCol[Index], 10)
endfor*生成标定
vector_to_hom_mat2d (Row, Column, WorldRow, WorldCol, HomMat2D1)*设置目标机械坐标
gen_circle (Circle, 20, 100, 10)*坐标转换 Row3Column3像素坐标点位 QxQy转换后的世界坐标
affine_trans_point_2d (HomMat2D1, 20, 100, Qx, Qy)dev_set_color(green)
gen_circle (Circle, Qx, Qy, 10)结果红色大圆圈为像素坐标红色小圆圈为机械坐标位置绿色为目标实际机械坐标位置