一次完成VisionMaster 9点标定

场景

点胶项目,由于每次换针后有装配误差,所以需要CCD拍照,使用VisionMaster视觉软件计算换针前后点坐标差,补偿到机械手上。

问题

VisionMaster的N点标定有两种模式,一种是触发模式,一种是手动模式,触发模式就是每拍一次照,记录一条数据,拍满9次开始标定,手动模式就是手动输入所有坐标数据,手动执行标定。
在这里插入图片描述
点胶项目标定一般是先点9个点,一次拍照完成标定,显然VisionMaster的现有方式都不适用。

思路

有没有办法一次完成9点标定呢?
答案是可以的,我们可以使用脚本工具,一次写入9条标定数据即可

实战

先看一下整体结构
在这里插入图片描述
首先读入一个图片,如下在这里插入图片描述
然后使用圆查找工具获取9点像素坐标,输入点集工具中。
在这里插入图片描述
然后配置一个tcp服务器,来接受机械手发来的世界坐标,坐标以字符串形式被接受工具获取,字符串内容如下:

CC,0,0,5,0,10,0,0,5,5,5,10,5,0,10,5,10,10,10

其中开头的CC表示此命令为calibration命令,VisionMaster会根据命令执行9点标定流程;

在这里插入图片描述
我们用脚本工具处理这些标定数据,将他们写入到N点标定工具中;
在这里插入图片描述
N点标定代码如下:

using System;
using System.Text;
using System.Windows.Forms;
using Script.Methods;
class UserScript:ScriptMethods,IProcessMethods
{
    //the count of process
	//执行次数计数
    int processCount ;  

    /// <summary>
    /// Initialize the field's value when compiling
	/// 预编译时变量初始化
    /// </summary>
    public void Init()
    {
        //You can add other global fields here
		//变量初始化,其余变量可在该函数中添加
        processCount = 0;
       
    }

    /// <summary>
    /// Enter the process function when running code once
	/// 流程执行一次进入Process函数
    /// </summary>
    /// <returns></returns>
    public bool Process()
    {
        //You can add your codes here, for realizing your desired function
        //每次执行将进入该函数,此处添加所需的逻辑流程处理
        //MessageBox.Show("Process Success");
        string cmd="";
        GetStringValue("CmdStr", ref cmd);
        
        float[] Px = new float[255];
        float[] Py = new float[255];
        int arrayCount = 0;
        GetFloatArrayValue("Px", ref Px, out arrayCount);
        GetFloatArrayValue("Py", ref Py, out arrayCount);

        string moduleName ="";
        GetStringValue("Name",ref moduleName);
        //清空旧数据
        CurrentProcess.GetModule(moduleName).SetValue("Clear", "0");
        //设置模块参数
        CurrentProcess.GetModule(moduleName).SetValue("CalibPointGet","1");
        CurrentProcess.GetModule(moduleName).SetValue("CalibPointTotalNum", arrayCount.ToString());
        CurrentProcess.GetModule(moduleName).SetValue("RotPointTotalNum", "0");
        CurrentProcess.GetModule(moduleName).SetValue("RefreshFileEnable", "True");
        CurrentProcess.GetModule(moduleName).SetValue("CameraMode", "1");
        CurrentProcess.GetModule(moduleName).SetValue("HomoFreedom", "Affine");
        //设置标定数据
        string[] WorldPoints = cmd.Split(',');
        for (int i = 0; i < arrayCount; i++)
        {
            CurrentProcess.GetModule(moduleName).SetValue("ImagePointX" + i, Px[i].ToString());
            CurrentProcess.GetModule(moduleName).SetValue("ImagePointY" + i, Py[i].ToString());
            CurrentProcess.GetModule(moduleName).SetValue("WorldPointX" + i, WorldPoints[i * 2 + 1].ToString());
            CurrentProcess.GetModule(moduleName).SetValue("WorldPointY" + i, WorldPoints[i * 2 + 2].ToString());
        }
        return true;
    }
}
                            

另外,在执行前,记得设置标定文件保存路径即可,其他参数皆在脚本中完成设置。
在这里插入图片描述

MasterOfCv
关注 关注
  • 5
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
halcon中9标定
weixin_45320837的博客
08-14 6588
Image Acquisition 01: Code generated by Image Acquisition 01 open_framegrabber (‘GigEVision2’, 0, 0, 0, 0, 0, 0, ‘progressive’, 8, ‘gray’, -1, ‘false’, ‘default’, ‘00214900eda0_DahengImavision_MER50...
Halcon九点及旋转标定流程
stephon_100的博客
10-29 1万+
参考文章:https://blog.csdn.net/william9987/article/details/119567827?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_title~default-1.no_search_link&spm=1001.2101.3001.4242.1 XY轴九点标定: 使用仿射变换: 夹具夹取产品或者标定块,选取一个特征,开始进行标定 X轴、Y轴移动一个位置...
6 海康视觉平台VisionMaster 上手系列:常用工具(三)
HuangGong2022的博客
10-26 7499
快速入门 工业机器视觉 机器视觉
VisionPro九点标定数据使用脚本输入(CogCalibNPointToNPointTool)
最新发布
ZEiii_的博客
04-09 460
不同于默认脚本的赋值,NPointPoint工具输入变量是VP里面的自带方法。以下是示例的两种脚本输入npp工具位数据的方法,
机器视觉9标定图纸.pdf
10-29
机器视觉9标定图纸 半径5mm 间隔20mm
Labview 9标定---不依赖Halcon,纯公式计算
07-29
计算出结果和halcon的一样,也已经应用在部分实例当中
基于Cognex VisionPro标准标定流程
09-22
基于Cognex VisionPro标准标定流程: 包括视觉引导通用的九点标定、旋转中心计算、原理介绍、公式推导和实际操作步骤等内容;
VisionPro 定位项目工具包示例
吴启林的博客
07-26 3296
VisionPro定位项目示例
康耐视 VisionPro 九点标定和旋转中心标定 补偿值 通俗易懂
weixin_51111241的博客
07-21 6546
1)先决条件。
标定系列二、9标定以及5圆心标定过程(代码详解)
热门推荐
qiaodahua的博客
04-10 1万+
计算仿射变换矩阵*机械手9坐标X,Y数组Rx=[]Ry=[]*像素坐标的x,y数组px=[]py=[]*计算仿射变换矩阵的RMS其中Rx_t,Ry_t为仿射变换后对应计算出的机械手坐标。Rx, Ry为实际标定时机械手的坐标,计算出距离偏差。其中distance存储9的坐标偏差*将5个对应像素坐标生成多线条轮廓*将轮廓进行拟合生成圆,求出对应圆心坐标。
海康VisionMaster配合机械手九点标定
a491487001的博客
08-18 8869
VisionMaster4.2.0配合机械手九点标定的操作流程。
九点标定(9).rar
03-09
非常详细的讲解了halcon的相机绑定在机械手上的9标定及补偿算法,适合用在贴片,胶机等场合 对实现思路进行了详尽的说明
Labview调用HALCON 标定9标定
03-12
Labview调用HALCON 标定9标定
binocular_stereo_vision-master_立体匹配_立体校正_visionmaster标定_立体标定及匹配图
10-02
双目立体视觉标定以及立体匹配参考图片,可用于立体标定,图像校正,立体匹配算法验证
halcon.rar_HALCON_标定_halcon_halcon 9标定_halcon 标定_halcon标定函数
07-14
自己总结的halcon 标定笔记(内含一份别人的总结),有函数说明和过程讲解,对理解标定有帮助
C# EmguCV 9标定.zip
10-20
C#源码 调用EmguCV开源库实现9标定,方便快捷,可直接通过像素坐标和机械坐标得到转换系数,从而实现坐标系转换,对于开源的确实很方便,实测和halcon计算的结果一致,
VisionMaster十二旋转标定不共轴抓取
01-21
VisionMaster十二旋转标定不共轴抓取
C#联合Visionpro 通用框架开发源码,已应用于多个项目,整套设备程序
m0_63588941的博客
10-28 1929
C#联合Visionpro 通用框架开发源码,已应用于多个项 目,整套设备程序,可以根据需求编出来,具体Vpp功能自己编 程序包含功能 1.自动设置界面窗体个数及分布 2.拍照方式以命令触发 3.自动九点标定 4.自动旋转标定,有两种算法,3拟合园和2加角度,两者相互验证,通过对比可计算旋转方向 5.程序以客户机服务器模式开发,预留编程接口,可扩展 6.包含光源控制接口,可扩展光源控制 7.整个窗口以dll方式载入,可以内嵌到界面上 8.含有dll嵌入实例 9.该程序可用于快速开发视觉接口 10.该程序
九点标定
qq_44079482的博客
11-16 1922
本文适用于初学者。 首先对概念要清晰:九点标定的仿射变换,只是图像行列、和坐标XY的仿射关系,也就是矩阵关系。从只有XY2个坐标轴来看,只有二个方向,所以只能适用于2D。下面具体流程: 第一步:制作9个,相机采图的时候能全部拍到即可。一般以会3X3的行列相等去制作。 1.在图像上找到9个圆的中心坐标。(二值化提取区域后排序获得区域行列坐标/使用模板匹配后排序获得行列坐标) 2.会用到的一些算子: rgb1_to_gray (Image, GrayImage) RGB图转灰度图 mirror
ni vision 9标定算法
07-28
NI Vision 9标定算法是一种用于图像处理中的自动显示校正的方法。该算法主要用于校准图像中的透视变形,以使其显示成规则的矩形形式。 该算法利用了摄像机的内部参数和外部参数,并使用几何推理和数学模型来计算像素坐标与真实世界坐标之间的映射关系。具体而言,该算法将图片中的9个关键与实际场景中的物体或特征相对应。 首先,使用摄像机的内部参数(如焦距、像素密度等)和外部参数(如相机的位置和朝向)来计算透视变换矩阵。该矩阵可以将图像中的像素坐标转换为真实世界坐标。 接下来,通过手动选择或自动检测图像中的9个关键,确定它们在真实世界坐标系中的位置。这些关键通常是物体的角或参考。算法通过计算图像中关键的像素坐标和真实世界坐标之间的映射关系来校准图像。 最后,通过将图像中的像素坐标与透视变换矩阵相乘,可以得到校准后的像素坐标。这些坐标可以用于显示校正后的图像,使其显示成规则的矩形形式。 总的来说,NI Vision 9标定算法是一种基于几何推理和数学模型的自动显示校正方法。它通过使用摄像机的内部参数和外部参数,以及图像中的9个关键,来计算图像中像素坐标和真实世界坐标之间的映射关系,从而实现图像的自动校正。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • 一次完成VisionMaster 9点标定 3549
  • VisionMaster 动态修改存图路径 1345
  • 贴合工位视觉功能概述 1341
  • 4相机测量 1148
  • 纯C#矩阵运算类,包含常用计算工具,对标halcon实现 293

分类专栏

  • VisionMaster 1篇

最新评论

  • 纯C#矩阵运算类,包含常用计算工具,对标halcon实现

    JianPing_: 请问能否出个教程实现halcon的vector to hom mat2d

  • VisionMaster 动态修改存图路径

    %忘了时间在动: 大哥,为什么我加了后,路径没变啊,存图模块要改什么吗

  • VisionMaster 动态修改存图路径

    朱永博: 变量类型链接的是啥子

  • 一次完成VisionMaster 9点标定

    2301_76810049: 格式化配置里面配置的是什么

  • 一次完成VisionMaster 9点标定

    2301_76810049: 格式化配置里面配置的是什么

您愿意向朋友推荐“博客详情页”吗?

  • 强烈不推荐
  • 不推荐
  • 一般般
  • 推荐
  • 强烈推荐
提交

最新文章

  • 纯C#矩阵运算类,包含常用计算工具,对标halcon实现
  • VisionMaster 动态修改存图路径
  • 4相机测量
2023年1篇
2022年4篇

目录

目录

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

哆哆女性网水果网店名字大全起名网店面起的姓名测试结果打分网站优化专业公司定制家具网站设计宝宝起乳名女孩卖水的公司起名猪猪婴儿起名禁忌外贸网站建设网站的陈豪演的电视剧有哪些注册蔬菜公司起名怎样为婴儿起名古希腊神话北京网站建设 企业设计网站箱包易县周边游婚姻占卜算命免费测试小说排行榜完本电影在线日本怎么起男孩的名字手机安全软件如何测算自己的寿命自深深处西昌企业网站建设端午节的来历的作文你打算萌死我吗20个字鬼故事广告设计证书考试网站生辰八字算命易安居梦想三国破解版游戏大全周易免费起名网免费淀粉肠小王子日销售额涨超10倍罗斯否认插足凯特王妃婚姻不负春光新的一天从800个哈欠开始有个姐真把千机伞做出来了国产伟哥去年销售近13亿充个话费竟沦为间接洗钱工具重庆警方辟谣“男子杀人焚尸”男子给前妻转账 现任妻子起诉要回春分繁花正当时呼北高速交通事故已致14人死亡杨洋拄拐现身医院月嫂回应掌掴婴儿是在赶虫子男孩疑遭霸凌 家长讨说法被踢出群因自嘲式简历走红的教授更新简介网友建议重庆地铁不准乘客携带菜筐清明节放假3天调休1天郑州一火锅店爆改成麻辣烫店19岁小伙救下5人后溺亡 多方发声两大学生合买彩票中奖一人不认账张家界的山上“长”满了韩国人?单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#青海通报栏杆断裂小学生跌落住进ICU代拍被何赛飞拿着魔杖追着打315晚会后胖东来又人满为患了当地回应沈阳致3死车祸车主疑毒驾武汉大学樱花即将进入盛花期张立群任西安交通大学校长为江西彩礼“减负”的“试婚人”网友洛杉矶偶遇贾玲倪萍分享减重40斤方法男孩8年未见母亲被告知被遗忘小米汽车超级工厂正式揭幕周杰伦一审败诉网易特朗普谈“凯特王妃P图照”考生莫言也上北大硕士复试名单了妈妈回应孩子在校撞护栏坠楼恒大被罚41.75亿到底怎么缴男子持台球杆殴打2名女店员被抓校方回应护栏损坏小学生课间坠楼外国人感慨凌晨的中国很安全火箭最近9战8胜1负王树国3次鞠躬告别西交大师生房客欠租失踪 房东直发愁萧美琴窜访捷克 外交部回应山西省委原副书记商黎光被逮捕阿根廷将发行1万与2万面值的纸币英国王室又一合照被质疑P图男子被猫抓伤后确诊“猫抓病”

哆哆女性网 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化