2020-03-02 11:53:44
膨胀运算在数字形态中的作用是把图像周围的背景点合并到物体中。如果两个物体之间距离比较近,那么膨胀运算可能会使这两个物体连接在一起。膨胀对填补图像分割后物体中的空洞很有用。dilation1(Region, StructElement:RegionDilation:Iterations:)功能: 使用用户自定义的结构元素对区域进行膨胀。结果元素是一个区域region,可由这些算子区域产生:gen_c...
2020-03-02 11:51:34
一个字节表示一个像素是灰度图像,三个字节表示一个像素是RGB图像,一个字节8位位深度为8,三个字节位深度为24位。膨胀、腐蚀、开运算、闭运算针对二值图像(二值图像是指在图像中,灰度等级只有两种,也就是说,图像中的任何像素不是0就是1,再无其他过渡的灰度值),腐蚀是减少像素,膨胀是增加像素。开运算:先腐蚀后膨胀(也减少像素),可以将两个物体分开,可以消除离散点和"毛刺",。闭运算...
2020-03-02 11:46:23
基本手法如下:1、采集图像2、预处理3、分割4、识别显示1、采集图像read_image (Image, ‘D:/**‘)get_image_size (Image, Width, Height)dev_open_window(0, 0, Width, Height, ‘black’, WindowHandle)2、预处理decompose3 (Image, Red, Green, Blue)tr...
2020-03-02 11:22:17
图像处理(image processing)用计算机对图像进行分析,以达到所需结果的技术。又称影像处理。图像处理一般指数字图像处理。数字图像是指用工业相机、摄像机、扫描仪等设备经过拍摄得到的一个大的二维数组,该数组的元素称为像素,其值称为灰度值。图像处理技术一般包括图像压缩,增强和复原,匹配、描述和识别3个部分。Blob分析(Blob Analysis)在计算机视觉中的Blob是指图像中的具有相似...
2020-01-18 15:50:02
勇哥之前写的一篇文章《Halcon学习(27-2)halcon测量技术:找线》里那段找线的代码,经常会报measure_pos的第4个参数报错。measure_pos的调用如下面这样: measure_pos (Image, MeasureHandle1, sigma, thresold, transition, select, RowEdge, ColumnEdge, Amplitude, Di...
2019-12-21 07:48:13
tuple_sort_index算子是返回按升序排序后的tuple元素的索引,官方说明如下:tuple_sort_index算子按升序对tuple的所有元素进行排序,
并返回已排序tuple的元素(相对于输入tuple-tuple)的索引。
作为前提条件,元组的单个元素必须是可比的。
因此,元组只能由字符串组成,或者只能包含(整数或浮点)数字。
在后一种情况下,整数和浮点数可以混合。请看下...
2019-12-20 19:42:56
hom_mat2d_to_affine_par算子全网只有下面这个解释:hom_mat2d_to_affine_par( : : HomMat2D : Sx, Sy, Phi, Theta, Tx, Ty)
功能:根据仿射变换矩阵(齐次二维变换矩阵)计算仿射变换参数
HomMat2D (输入参数):仿射变换矩阵
Sx (输出参数):x方向的缩放因子(如...
2019-12-15 21:46:57
首先先说明一下Hdevelop图形显示界面的坐标:基本上和其他环境中图像的坐标一样,左上角为(0,0),X轴为横轴,Y轴为纵轴,行Row指的是Y轴坐标,列Column指的是X轴坐标关于gen_measure_rectangle2:它是获得一个测量句柄Row, Column是矩形的中心Length1, Length2是矩形区域的长和宽的一半,关于区域的宽度,尽量在包住边缘的同时设置的越大越好,因为设...
2019-12-14 11:20:31
群里有人问题怎么测量下面的工件的尺寸?勇哥把原图处理了一下,供大家练习。下面代码是群中有人给出的一种思路,不完善。其主要思路是:。查找边缘Xld。分割Xld。循环判断每小段xld,通过其方向判断是不是我们需要的线条dev_close_window()
read_image (Image, 'C:/Users/hackpig/Desktop/QQ图片20191214110730.png...
2019-12-11 13:15:32
最新的HALCON版本19.05于2019年5月发布。下面,您将找到本版本中包含的一些功能的概述。.(1)arm处理器的深度学习推理随着HALCON 19.05,客户可以直接臂执行深度学习arm®处理器。这使他们能够在嵌入式设备上部署深度学习应用程序,而无需任何其他专用硬件。所有三种深度学习技术图像分类,对象检测和语义分割都支持并在基于Arm的嵌入式设备上运行。(2)增强的对象检测HALCON基于...
2019-12-11 11:06:02
作者: 段德山神经网络和深度学习技术的历史发展其它的应用还有:什么是深度学习?HALCON中提供的典型机器学习方法使用多层感知器的典型神经网络使用传统的机器学习方法挑战是什么呢?我们可以看一下传统分类方法的训练过程传统的机器学习方法的缺点在于:需要非常有经验的编程和视觉工师来实现需要大量的编程工作和昂贵代码维护成本求例:玻璃缺陷检测与分类在特征提取的环节非常具有挑战性深度学习技术一个很大的优势就是...
2019-12-06 21:36:13
怎么让一个点按指定的角度旋转并且偏移到指定的位置上去呢?这个其实就是旋转与偏移二合一矩阵的应用。halcon的算子vector_angle_to_rigid配合affine_trans_pixel就是这个作用如下图所示,勇哥希望两个极耳朵中间那个点按电池的角度旋转并且位置于电池本体的中心上去。read_image(Image, 'C:/Users/Administrator/Desktop...
2019-12-05 22:15:03
勇哥之前发表的一篇文章《Halcon学习(27-2)halcon测量技术:找线》这个文章介绍的找线方式是使用算子measure_pos来工作的,因此这种方式适合halcon及以上版本。勇哥另外几篇贴子里介绍了适合halcon17及以上版本的找线方法:《视觉进阶:2D Metrology(二维计量)》《halcon17的找线功能》听说,这些高阶的功能其实也是对halcon10原来的算子的一些封装。因...
2019-12-05 08:06:17
勇哥继续讨论Epson机器人手眼标定的过程和一些经验。(一)九点标定时的高度与实际电池取放高度相差几毫米可以吗?依据最近勇哥现场做的实验来看,如果标定高度不等于电池取放高度,影响很大。定位的时候差别按mm来算,不是差一点半点。而且这种偏差呈放射状的变化,有点像CCD的成像方式。勇哥画了个示意,在下图中,电池1的偏差可能是向左,而电池6的偏差可能是向右。如果这个时候把电池面升高到原来标定的高度,你会...
2019-12-02 17:06:13
先来段代码。 angle_ll (Row1, Column1, Row, Column,Row1, Column1, Row5-RT_Y, Column5+RT_X, Angle1)
disp_line(200000, Row1, Column1, Row, Column)
disp_line(200000, Row1, Column1, Row5-RT_Y, Co...
2019-12-01 10:12:54
已经矩形的中心点、边长、phi求四个顶点的坐标 在halcon里面,类似gen_measure_rectangle2、smallest_rectangle2的算子表示任意角度的矩形。其信息包括:矩形中心点 row,column矩形角度 Phi矩形区域的长和宽的一半 Length1, Length2如下图所示:(图1)就没有没直接给出矩形4个顶点坐标。有时候想知道4个顶点的坐标怎么计算呢?由于勇哥手...
2019-11-12 21:17:05
这个错误是勇哥手里的代码引用halcon18后出现的。Help file for package 'system' in directory 'E:\Program Files\MVTec\HALCON-18.11-Progress\help'
is corrupt(error=8000). Please check the correct setting of...
2019-11-12 17:13:28
答案是,不可以,真是害死个人。这怎么玩哦,又得重新用halcon10标定。...
2019-11-08 17:02:07
通过本例程学习,掌握了read_image读取多幅图像,channels_to_image算子的使用。本例程的算法思路是通过求取各个通道求取暗的和亮的部分,然后各个通道使用union1进行联合,得到的联合后的暗图像和明亮图像,然后求取明暗图像的交集。后续经过基本的选择处理,得到漏焊的焊点。get_system ('clip_region', Information)
set_sy...
2019-11-08 16:39:54
(1) fast threshold(mage: Region: MinGray, MaxGray, Minsize:) ①算子描述: 全局阈值,此算子与threshold类似,只是多了一个輸入参数MinSize :提取对象的最小尺寸(2) gray histo(Regions, Image : : : AbsoluteHisto, Relativ...
2019-11-08 16:34:56
(1)函数原型: select shape proto(Regions, Pattern, SelectedRegions , Feature, Min, Max)(2)函数功能: 依据某种相互关系筛选区域。(3) Feature参数的选项: 1)distance center:判断Regions中每个region的中心(area ce...
2019-11-08 15:57:48
(1)聚类的简介: 聚类是一种无监督学习方法,试图将数据集中的样品划分为若干个通常不相交的子集。(2)聚类的两个基本问题: ①性能度量: 用于度量聚类结果的好坏,即相同簇样本尽可能相似,不同簇样本尽可能不同。性能度星可分为两类,一,外部指标,将聚类结果与外部指标相比较,二,内部指标,直接考察聚类结果。 ②距离计算:...
2019-11-08 15:37:26
(1) KNN算法简介: KNN算法,即K近邻算法是一种监督学习算法,本质上是要在给定的训练样本中找到与某一个测试样本A最近的 K个实例,然后统计k个实例中所属类别计数最多的那个类,据他们的主要分类来决定新数据的类别。(2) KNN算法的三个要点: ①K的选择: K值是KNN算法中为数不多的参数之一, K值的选择也直接影响着模型的...
2019-11-08 13:59:22
勇哥的这个项目是整盘物料机器人视觉取料。由于该项目有两个相机,一个是整盘入料相机,用于判断物料有无和粗定位。另外还有一个下相机,用于精定位后物料入转盘机。本篇说的就是整盘入料相机的粗定位算法。这里勇哥使用的是halcon的形态学算法,相比找边的方式来说,其意义是速度快,能满足视觉一键换型的需要。read_image(backImg, 'C:/Users/hackpig/Desktop/蓝牙...
2019-11-08 13:47:21
(1)实现功能: halcon中调用smallest_rectangle2()函数获得仿射外接矩形(旋转外接矩形),返回的是矩形的中心坐标、角度和长短轴长度,但是在有些时候需要使用的是仿射外接矩形的四个顶点坐标。 本文实现的功能是通过矩形的中心坐标、角度和长短轴长度获得四个顶点的坐标。(2)实现代码: smallest_rectangle2 (ObjectSelec...
2019-11-07 14:18:12
如下图,想取得这根条状物的突出来的“刺”。寻找图中边缘突出的部分,解决思路:1、阈值分割,找出黑色部分2、生成一个小矩形作为StructElement,进行opening操作,即可找到如下图的部分3、与阈值分割后的进行difference操作,即可找到突出部分,后面再进行求取突出的最边缘部分。上代码:read_image (Image, 'C:/Users/gongyong/Desktop...
2019-11-07 13:20:25
勇哥项目中有下面这个拍照函数GrabOneImage()。在其它十几台设备上面运行没发现有什么问题,但是最近发现有一台设备上长时间运行不到半小时,程序就报告崩溃。错误原因是内存不足。 public bool GrabOneImage(bool isDebug)
{
try
{
//如果未初始化,先初始化...
2019-11-06 20:22:23
第四个要掌握的定理是正弦定理,它指的是:在任意一个平面三角形中,各边和它所对角的正弦值的比相等且等于外接圆的直径根据正弦定理,图4-6-2会有几个比较有意思的特点:只要BC边不变,其它两条边无论怎么变,∠A一定是30°任意一对边和其角的正弦比值一定等于这个圆的直径20勇哥用CAD验证了一下第一点。也验证了第二点。CAD的计算结果:三角形的外切圆的直径是57.75注意:由于CAD的测量时存在结果精度...
2019-11-06 16:44:16
勇哥说的这个话题的起因是追求极速的拍图速度。机器ppm不达标的情况下,往往对视觉的处理速度有变态的要求,为了争取处理时间最短,几十毫秒也要争取。halcon的接口是通用接口,其速度是比不上相机厂商自己相机配套的SDK的采图速度的。下面程序运行后,500w的CCD拍图的时间(不算显示时间)达到惊人的32毫秒,如果用halcon接口,最快的我见过是180毫秒。using Basler.Pylon;...
2019-11-06 16:13:32
这篇主要是C#和Halcon的混合编程,写给新手们看的。halcon源程序:dev_open_window(0, 0, 512, 512, 'black', WindowHandle)read_image (Image, 'C:/Users/Administrator/Desktop/猫.jpg')dev_display(Image)get_image_size(I...