首先使用拍照工具拍摄一些JPG格式的标定图片。然后放到特定的文件夹下,我这里是image文件夹。在标定前,首先读取该文件夹下的图片文件,获取这些图片文件的文件名,以备将来opencv读取图片使用。这样做的好处是不用特意给拍摄的图片按照特定格式重新命名,大大减小了工作量。标定时,程序会检查这些图片是否能正常提取格点,如果不能,程序自动舍去,在标定时该幅图片不参与计算。标定完成后,程序会把标定结果显示到控制图上,并把标定的更详细结果写入的txt文件。用到的opencv版本的2.4.10,vs版本是2
本文解决的问题: 机械手搭载双目相机,手眼标定。 本文有细致的推导过程,非常全面。 什么是手眼标定 确定像素坐标系和空间机械手坐标系的坐标转化关系; 为什么会存在这个? 举一个生活中常见的例子——用手移动物体: 第一步:眼睛观察到三维世界,并将其转换到视网膜平面(三维空间转换到二维平面)传送信息给大脑; 第二步:大脑想要移动某个物体,假设想要将物体从A点移动B
一、提高Halcon的运算速度,有以下几种方法:1、Multithreading(多线程)2、Automatic Parallelization(自动操作并行化)3、Compute devices,利用GPU提速,如果显卡性能好,至少可以提高5~10倍的运算速度二、多线程1、官方自带的例程get_operator_info.hdev,可以查看支持多线程的算子;* Determine the multithreading information
get_m
极坐标的用途把圆形的图片转换为矩形,便于字符识别和关键区域的提取。在halcon中对应的算子(1)极坐标的展开:polar_trans_image_ext(Image : PolarTransImage : Row, Column, AngleStart, AngleEnd, RadiusStart, RadiusEnd, Width, Height, Interpolation : )(2)极坐标的逆变换:polar_trans_image_inv(PolarImage : XYTransIm
变换模型是指根据待匹配图像与背景图像之间几何畸变的情况,所选择的能最佳拟合两幅图像之间变化的几何变换模型。可采用的变换模型有如下几种:刚性变换、仿射变换、透视变换和非线形变换等,如下图:参考: http://wenku.baidu.com/view/826a796027d3240c8447ef20.html 其中第三个的仿射变换就是我们这节要讨论的。仿射变换(Affine Transformation)Affine Transformation是一种二维坐标到二维坐标之间的线
勇哥手里的halcon19.11写的深度学习程序,运行没有问题。但是把它导出为一个action函数到一个项目的上位机程序上面(C#)那边去调用,结果报下面的错误:HALCON error #7717:For this operation the cuBLAS library needs to be available(see installation guide) in operator apply_dl_model勇哥试了一下,新建一C#个小程序,调用这个导出的action(),结果居然没有报
手眼标定原理实战2020-07-12 20:30:36
手眼关系一般分为固定相机和移动相机两种模式。在这章我们同样需要涉及到标定这块的知识,我们回顾一下,标定的流程一般如下:图7.1.1 标定流程图根据摄像机和机器人的位置关系可以分为Eye-in-Hand和eye-to-Hand。摄像机安装在机械手上,并且随着机械手一起运动,这种称为Eye-in-Hand。将摄像机安装在机械手本体之外,固定在某个位置,这种称为eye-to-hand。机械手一般分为串联六轴的和四轴并联的,两种机械手的坐标系关系以及优势都不相同。手眼标定的过程其实就是求解摄像机坐标系和
几何变换详解2020-07-12 08:44:29
在三维图形学中,几何变换大致分为三种,平移变换(Translation),缩放变换(Scaling),旋转变换(Rotation)。以下讨论皆针对DirectX,所以使用左手坐标系。平移变换将三维空间中的一个点[x, y, z, 1]移动到另外一个点[x', y', z', 1],三个坐标轴的移动分量分别为dx=Tx, dy=Ty, dz=Tz, 即x' = x + Txy' = y + Tyz' = z + Tz平移变换的矩阵如下。缩放变换将模型
本文介绍的Matrix,是.net自带的类. 其命名空间为:System.Drawing.Drawing2D注意并不是netMarketing中那个netMarketing.graphics.Matrix在GDI+中,可以在Matrix对象中存储仿射变换。由于表示仿射变换的矩阵的第三列总是(0,0,1),因此在构造Matrix对象时,只需要指定前两列的6个数。语句:Matrix myMatrix = new Matrix(0, 1, -
Introduction2D image transformation in .NET has been very much simplified by the Matrix class in the System.Drawing.Drawing2D namespace. In this article, I would like to share with the reader on the use of Matrix class f