2020-05-25 14:44:21
(一) 字典这个可以和C#中的Dictionary类比,它是由key来访问存储的元素。和C#的字典区别只是,halcon中的这个字典只接收Htuple, 和Object两种类型。下面的程序演示了写入与读取Htuple, Object类型的数据。create_dict(DictHandle)
read_image(Image, 'printer_chip/printer_chip_01...
2020-05-25 14:14:56
这个例子是halcon18例程中深度学习系列例程中的一例。它用了MVtec做好的一个药丸分类训练数据库,来做DL(深度学习)检测。学习主要参考了自带的detect pills的例子,该例子分了四部分,分别是创建网络和数据预处理训练网络评估训练的效果测试新图像本文记录了对其中第一步,即创建网络和数据集预处理这部分的一些理解。创建深度学习网络设置网络参数这一步主要是设置选择halcon深度学习网络模型...
2020-05-24 12:10:03
示例,将以下 两个元组分别写入表格中,元组a在第一行,元组b在第二行a:= [1,2,3]b:= [4,5,6] 1、读入文件,先判断是否存在,如果存在将内容清空fileName:='E:/test.csv'file_exists(fileName, FileExists)if(FileExists) delete_file(fileName)endif*假如文件不存在,将重新...
2020-05-24 11:49:58
1.把原始图像放到images目录;把类名写到classes.txt中,每个类名占一行;使用标注工具标注数据,标签图像将保存到labels目录;(只要写defect类,背景不用写) (classes.txt里是类名)2.运行2_train.hdev读入标注数据,训练得到网络;(epoch为500次,batchsize=1,learningrate)3.运行3_infer.hdev使用训练好的网络推...
2020-05-24 10:20:14
映射校正效果如下:几个核心算子说明如下:gen_image_to_world_plane_map( : Map : CameraParam, WorldPose, WidthIn, HeightIn, WidthMapped, HeightMapped, Scale, MapType : ) /*************************************************...
2020-05-23 23:00:42
1Laws纹理滤波纹理实际上一种视觉特征,反映了图像上某种灰度变化的分布,体现出像素灰度与周围空间的一种关系,例如布匹纹理、木制家具纹理等,如下图所示布匹上纹理。LAWS纹理滤波以一种统计能量的方式检测纹理,能量的度量一般由以下三个向量得到:这三个向量与其自身以及互相卷积后,可形成以下5个向量:而这5个向量之间,相互乘积,可以生成检测水平、垂直、高频点、V形状等特征纹理的模板,下图为生成检测垂直边...
2020-05-23 22:58:15
- 算法思路 -(1)构造滤波器与原图卷积增强图像(2)灰度投影,构建垂直灰度投影函数,并与平滑后的函数进行 差分运算,超过一定阈值即为缺陷所在位置的列坐标(3)计算缺陷区域并显示使用第一篇构造的滤波器与图像卷积运算,突出图像竖直方向的折痕,如下图。使用gray_projections算子,得到图像的水平灰度投影HorProjection以及垂直灰度投影VertProjection。HorProj...
2020-05-23 22:49:11
原图来自Ihalcon论坛中间有一条对比度不明显的垂直折痕(图片来源:http://www.ihalcon.com/read-4226.html)发此帖子的楼主已经给出解决方案,如下:1. 设计一个滤波器2. 用convol_image算子来增强特定方向的纹理3. 再用Gray_Range_Rect做图像变换4. 最终用线高斯提取目标折痕我们沿着楼主的解决思路走一遍。首先介绍下相关理论点:卷积、如...
2020-05-23 22:40:53
原图来自Ihalcon论坛缺陷如在下图圆框中首先,阈值分割+形态学处理,将包含边缘部分图像进行抠图然后使用canny滤波器进行边缘检测如下图红、绿双线将凸起部分平滑掉,细节如下右图计算待检测边缘上的点到平滑后边缘的距离,超过一定阈值公差即为缺陷如下图缺陷检测关键代码*选择待检测边缘
select_obj(UnionContours, ObjectSelected, Index)...
2020-05-23 22:37:25
1模型下载下载地址: https://www.cc.gatech.edu/projects/large_models/bunny.html打开后页面如下点击红色箭头所指,下载.PLY格式2ply格式简介PLY是一种数据存储格式, 全名为多边形档案(Polygon File Format)或斯坦福三角形档案(Stanford Triangle Format)。该格式主要用以储存立体扫描结果的三维数值...
2020-05-23 17:02:35
原图来自于Ihalcon论坛,条条大路通罗马,目前有动态阈值、频域分析等算法思路,都可以尝试,在此提出另一种思路--人为构造光滑的二次区域与原图对比,进行脏污的检测。所检测图片如下脏污在红色箭头所指处特别浅显灰度拉伸等预处理后,脏污基本清晰可见原图打光不均匀,中间亮,四角暗,应使用尺寸更大的环形光打开轮廓线工具经过脏污处的灰度值分布如图右所示我们目的使得灰度值分布线更加平滑按行依次拟合平滑后的二维...
2020-05-23 16:31:07
1. 边缘检测原理测量直线或者曲线的前提,是进行边缘检测和轮廓提取。边缘一般是指图像灰度值变化剧烈的位置。沿着如下左图水平线的位置的灰度值分布函数f(x),如下右图所示。可知,在边缘的地方,灰度值变化非常明显。为了获取准确且唯一的边缘,那么变化最剧烈的地方就是边缘所在位置,对灰度值分布函数求一阶导f '(x)。可知,变化最剧烈的位置就是其一阶导的局部最大值,一阶导最大时,其二阶导f'...
2020-05-23 16:27:27
“ 经济基础决定上层建筑”1、什么是标定?需要标定什么?为什么需要标定?空间物体呈现的是三维几何位置,相机内的投影图像为二维位置,所以,确定空间物体某点的三维几何位置与其投影图像中对应点的关系,就是标定。需要确定标定关系,必须建立物体与相机的投影数学模型,即相机成像的几何模型。构建几何模型的数学参数就是需要标定的内容,即相机的内外参数。内参是相机的工艺参数,包括焦距,主距,畸变系数,相邻像素距离等...
2020-05-23 16:12:11
“一滴水,用显微镜看,也是一个大世界。”在项目中,偶尔会遇到由于产品形状、拍摄位置等原因导致标定板很难放置的情况,此时可以考虑使用halcon自标定算法来标定相机。由于自标定可以在不使用用标定板情况下,进行畸变矫正。所以,极大地方便在设备现场进行调试。1. 自标定处理流程自标定原理来源于此论文:“Automatic line-based estimation of radial lens dist...
2020-05-23 15:23:28
校正前的畸变图像校正后的图像read_image(Image, 'pioneer')
get_image_size(Image, Width, Height)
CamParIn:=[0.00219846,-78129.2,5.46495e-06,5.5e-06,318.206,236.732,Width,Height]
*依照测定的径向畸变决定相机的新参数
*算子参...
2020-05-23 10:05:06
我们知道opencv的模板匹配是个鸡肋,效果跟halcon的模板匹配没法比。感谢下面这位大神贡献了实现类似halcon形状匹配的源码。前言用过halcon形状匹配的都知道,这个算子贼好用,随便截一个ROI做模板就可以在搜索图像中匹配到相似的区域,并且能输出搜索图像的位置,匹配尺度,匹配角度。现在我们就要利用opencv在C++的环境下复现这个效果。我们先看下复现的效果图,提升下学习的欲望(要在搜索...
2020-05-23 09:37:21
原文来自:http://blog.csdn.net/dcrmg/article/details/52939318使用OpenCV实现张正友法相机标定之前,有几个问题事先要确认一下,那就是相机为什么需要标定,标定需要的输入和输出分别是哪些?相机标定的目的:获取摄像机的内参和外参矩阵(同时也会得到每一幅标定图像的选择和平移矩阵),内参和外参系数可以对之后相机拍摄的图像就进行矫正,得到畸变相对很小的图像...
2020-05-22 17:41:48
GML是一款简单直接的相机标定软件,附上下载地址:http://graphics.cs.msu.ru/en/node/909。下载后需要安装,在安装的目录下面有现成的棋盘格PDF文件,可以直接用于打印。我使用的是默认安装位置,其PDF文件位于C:\Program Files (x86)\GML\GML Camera Calibration 0.75\Calibration pattern目录下。安...
2020-05-22 17:26:36
说起相机大家都比较熟悉,现在已经是手机的标配和卖点,而且做的非常便捷易用,随便按都能拍出不错的照片,但如果想更手动、更专业一点,或者将相机用于工业应用(如机器视觉、摄影测量等),还是需要了解一下成像方面的东西,本文力求通俗易懂,先介绍一些相机相关的基本概念,然后对相机的标定过程进行简单的阐述。一、基本概念1、景深我们拍照片的时候常有“虚化”的效果,其实就是利用“景深”来突出重点:上图只有中间部分是...
2020-05-22 13:47:48
摘要 本文分析了人手臂关节的运动特点,据此确定了仿臂机器人自由度的分配。在分析和总结前人关于机器人运动学分析的基础上,详细地阐述了机器人建模、欧拉角选择以及运动学正反解的各种方法及其进展情况。比较了现有的计算方法的优缺点,并从中选出了一种适合本题目的一种运动学分析方法,为接下来的机器人分析计算打下基础。 关键词:四自由度 仿臂机器人 欧拉角 运动学正反解 目 录 摘要 III 目 录...
2020-05-21 08:39:55
1.1.1 I/O 接口 I/O 接口主要提供相机供电(默认连接 DC12V 电源)、外部触发信号输入(默认空载)、 频闪灯控制输出(默认空载)功能,MV-EM 系列采用6芯航空插头,MV-E 系列采用12芯航空 插头,具体接线请参照以下定义。 1.1.1.1 接口定义1.1.2 RJ45接口 RJ45接口主要用于输出图像采集数据以及控制信号输入,千兆以太网接口,推荐使用超五 类以上网线。 1....
2020-05-20 22:00:41
通用数字输入信号INPUT 用户可以使用通用数字输入信号用于开关信号、传感器信号或其它信号的输入口,如:利用 通用 INPUT 信号定义为伺服电机驱动器的 RDY(准备好)信号。 通用数字输入信号、引脚号和轴号对照如表 5-9 所示:通用数字输入信号输入原理图如图 5-11 所示:通用数字输出信号OUT 用户可以使用通用数字输出信号用于控制继电器、电磁阀或其它设备的输出口。OUT1-OUT12...
2020-05-20 19:56:25
这篇基恩士的官方文档介绍了怎么挑选相机,还是有一定参考价值。视觉系统所使用的相机种类大致可分为以下几种。根据用途,从中选择可获取最佳图像的相机。视觉系统所使用的 CCD 拍摄元件是以格子状排列的较小像素的集合体。在作为标准型经常使用的 31 万像素 CCD 中,存在称为高像素型的 200 至 2100 万像素 CCD。但是,如何区分使用该像素数的差异呢?一般从 “视野尺寸” 和 “像素分辨率” 两...
2020-05-20 10:04:18
随着机器视觉,自动驾驶等颠覆性的技术逐步发展,采用 3D 相机进行物体识别,行为识别,场景 建模的相关应用越来越多,可以说深度相机就是终端和机器人的眼睛,那么什么是深度相机呢,跟之前的普通相机(2D)想比较,又有哪些差别? 深度相机又称之为3D相机,顾名思义,就是通过该相机能检测出拍摄空间的景深距离,这也是与普通摄像头最大的区别。普通的彩色相机拍摄到的图片能看到相机视角内的所有物体并记录下来,但是...
2020-05-20 09:23:29
RGBD深度相机是近几年兴起的新技术,从功能上来讲,就是在RGB普通摄像头的功能上添加了一个深度测量,从实现这个功能的技术层面去分析,那么有以下几种主流方案:双目,结构光,TOF三种主要技术。RGB双目的测距方式是被动式测距,其工双目匹配,三角测量,RGB双目受基线限制,中距;
其分辨率中高,精度:双目是0.01mm--1mm;显示的画面帧率较低,约在几十HZ;
抗光照强,功耗方面还是相对比较...
2020-05-20 09:10:16
上一节呢,我们利用openni2获得了彩色图像和深度图像,这一节我们用openni2的转换函数将深度数据转换为三维点云,然后用彩色数据作为纹理将点云用opengl画出来。首先介绍CoordinateConverter::convertDepthToWorld(const VideoStream& depthStream, int depthX, int depthY, DepthPixel...
2020-05-19 17:36:25
一.总体原理:摄像机标定(Camera calibration)简单来说是从世界坐标系换到图像坐标系的过程,也就是求最终的投影矩阵的过程。[1]基本的坐标系:世界坐标系;相机坐标系;成像平面坐标系;像素坐标系[2]一般来说,标定的过程分为两个部分:第一步是从世界坐标系转换为相机坐标系,这一步是三维点到三维点的转换,包括R,t(相机外参)等参数;第二部是从相机坐标系转为成像平面坐标系(像素坐标系),...
2020-05-19 16:47:17
新项目是3D重建,最近都在查资料看论文,关于生成3D点云,特征检测,点云匹配,曲面重建等等。有篇知乎写得不错,讲了实现3D重建的相关体系和方法。不过我也是从那里面得到了启发,方法和里面也不太相同,因为里面主要是多幅2D图像三维重建和单目三维重建,他们都没有深度信息而是通过SFM等一些算法计算出景深。而我使用的是RGBD传感器如kinect,xtion。所以我关注与3D特征检测匹配等。大家可以看看微...
2020-05-19 16:45:22
一、特征提取Feature Extraction:· SIFT [1] [Demo program][SIFT Library] [VLFeat]· PCA-SIFT [2] [Project]· Affine-SIFT [3] [Project]· SURF [4] [OpenSURF] [Matlab Wrapper]·...
2020-05-19 10:58:21
上一篇讲了利用随即一致性来减少错误匹配的情况,这一篇讲一下使用最小二乘多项式平滑方法来减少姿态的抖动问题。因为我们的设备是手持单目,相机在移动的过程中,会产生细微的抖动。虽然EKF或者G2O(通用图优化)会帮我们最小化错误,但是当我们得到正确的最接近真实的姿态后,我们会发现这些姿态是存在细微抖动的。下图为未平滑的相机姿态(Matlab):我们看到有大量的抖动在里面。体现在图像上则是AR物体会有小幅...