2020-10-28 19:41:35
先看代码实践dev_update_off ()
dev_close_window ()
*读图
read_image (Image, 'D:/1.bmp')
get_image_size (Image, Width, Height)
*测试提取边缘
edges_image(Image,Amp,Dir,'lanser2',0.5,'no...
2020-10-28 19:34:52
如何判断一个点是否在多边形内部?(1)面积和判别法:判断目标点与多边形的每条边组成的三角形面积和是否等于该多边形,相等则在多边形内部。--采纳(2)夹角和判别法:判断目标点与所有边的夹角和是否为360度,为360度则在多边形内部。(3)引射线法:从目标点出发引一条射线,看这条射线和多边形所有边的交点数目。如果有奇数个交点,则说明在内部,如果有偶数个交点,则说明在外部。(4)转角法:按照多边形顶点逆...
2020-10-28 19:07:34
在谈纹理分析之前,先谈谈blog分析。在halcon中,blog分析是最基础的图像处理方法。计算机视觉中的Blob是指图像中的一块连通区域,Blob分析就是对前景/背景分离后的二值图像,进行连通域提取和标记。标记完成的每一个Blob都代表一个前景目标,然后就可以计算Blob的一些相关特征。其优点在于通过Blob提取,可以获得相关区域的信息,但是速度较慢,分析难度大。Blob分析就是对这一块连通区域...
2020-10-26 13:27:42
(一)Wrong number of values of control parameter 2(HALCON错误代码:1402)这种错误发生算子add_sample_class_mlp中。其原因是你现在的图片计算出来的FeatureVector和之前添加的FeatureVector大小不一致。这是因为训练图片的尺寸大小不致造成的。如下图所示,哪怕是你的图像大小差一行像素,也会造成FeatureV...
2020-10-23 20:56:57
勇哥的一个案子里需求如下:分割出齿轮的小齿,小齿要排列规则,图像大小固定由于齿轮数量有40多个,因此分割要求速度快分割后的图片形成磁盘文件 (图1 分割后的图片样例)(图2 要分割的齿轮和极坐标转换后的效果) 这个需求如果不考虑速度的话,是很简单的。最简单的是转动图片固定角度,然后用一个矩形ROI去切割固定位置的小齿。但是这个办法由于耗时太长,能实现功能,却达不到速度要求。还有一个办法是...
2020-10-21 08:08:26
灰度共生矩阵灰度共生矩阵定义为像素对的联合分布概率,是一个对称矩阵,它不仅反映图像灰度在相邻的方向、相邻间隔、变化幅度的综合信息,但也反映了相同的灰度级像素之间的位置分布特征,是计算纹理特征的基础。设f(x,y)为一幅数字图像,其大小为M×N,灰度级别为Ng,则满足一定空间关系的灰度共生矩阵为:其中#(x)表示集合x中的元素个数,显然P为Ng×Ng的矩阵,若(x1,y1)与(x2,y2)间距离为d...
2020-10-20 22:43:48
首先看看要使用的图像(这是闲着无聊在halcon网上找的一张实际生产中的图):从图像中看,颗粒状物体都有不同程度的粘连在一起,这给我们在处理上带来了一定的麻烦。首先想,对于这样的图,人是怎么识别的?抽象出来就是:先记住颗粒的形状,再去里面找。因此很明显想到的是图像匹配识别,不过粘连度高的就不好使用特征模板匹配了,因为粘连的物体本身其特征就模糊了很多。这里建议使用ncc模板匹配,至于ncc与shap...
2020-10-20 22:38:29
在二维平面中,相同的来料都有它关于来料相同的平面矩阵,因此在初始来料上规划好路径后只要得到二次来料它发生的位移以及旋转角度就能很容易得到这次来料上的规划路径关系,从而控制机械手准确走完规划路径。但当来料过大超出相机抓图的视野就可以通过mark点来获得这两个关系,mark点可以是一个、两个或者三个,分别取决于不同的场合。关于一个mark点的定位就非常简单了,但有个局限就是这个mark点必要很容确定旋...
2020-10-20 22:34:49
关键算子: orientation_region vector_angle_to_rigid affine_trans_region 测试图片:halcon代码:*此例子将图中没有偏移的形状参照旋转的形状进行旋转
read_image (Image, 'D:/Halcon-WorkSpaces/Test/Image/test14...
2020-10-18 21:17:20
例一:毛刺在往外凸的面上策略1:分割出黑色部分,然后通过开运算去掉毛刺,再通过原黑色部分区域减去开运算之后的区域,得到毛刺部分的区域。 read_image (Tu, 'C:/Users/xiahui/Desktop/tu.jpg')
binary_threshold (Tu, Region, 'max_separability', 'dark',...
2020-10-15 21:55:43
inspect_bottle_mouth.hdev巧妙运用了极坐标变换法,细节很精细,值得学习* tuning parameters
SmoothX := 501
ThresholdOffset := 25
MinDefectSize := 50
*
* initialization
PolarResolution := 640
RingSize := 70
get_system...
2020-10-11 21:33:57
(一) 判断对象为空对于region是否为空,用下面的算子。IsEqual1是个inter型,如果为空则为1,否则为0gen_empty_region(EmptyRegion1)
test_equal_region(EmptyRegion1,CheckARegion,IsEqual1)
if(IsEqual1==1)
return()
endif判断hobject为空则用算子tes...
2020-10-10 20:14:26
阈值分割引言阈值分割有非常多的算法,大体上分为全局和局部算法。
全局算法包括全局固定阈值和基于图像直方图的阈值,局部算法包括局部动态阈值分割。
基于图像直方图阈值分割的方法也有很多,比如常规的高斯滤波双峰法,OTSU大津法。
但是这类所有的法都基于一个假设:图像是有前景和背景的,待分割目标处于背景中,即图像直方图是双峰的。
如果因为非均匀光照导致待分割目标不处于背景或前景中,即图像直方图无...
2020-10-07 10:23:20
1、机器人本体电池(检测/更换)爱普生机器人LS系列机器人手臂电池的使用寿命为1.5年,建议1年以后开始陆续更换,以免手臂原点丢失需要从新校正原点,从新示教点位。LS系列机器人本体电池位置:LS系列手臂电池规格:爱普生机器人LS系列电池图片:2、J3,J4关节皮带(检测/更换)按照正常保养流程,皮带在使用1年或者10000H就需要更换皮带,不更换皮带会有异响,震动,张力不足导致点位偏移等情况。皮带...
2020-10-06 20:12:38
固定上相机的,先拍后取的方式是比较常见于拉带入料的设备。它的特点是:(1) 眼在手外(2) 通常都是上相机方式拍图(3) 它是一种先拍再取的方式(4) 它常用于物料取放,一般是用于定位取料位置(x,y,u),而放置的时候可以走一个固定求教点勇哥的实验环境如下图:(一)我们先来做工具坐标。使用epson的向导程序来创建工具坐标。第一个点位置如下,红色十字位置就是ncc模板的中心,绿色十字是我们记录下...
2020-09-30 22:40:20
接上篇 http://47.98.154.65/?id=1436 上篇贴子谈了怎么样标定后,定位机器人运动到任意一个位置时,相机看到的特征点的位置。这一篇继续实验一个重要话题: 怎么计算机械人旋转中心到相机视野中心的距离。机械人旋转中心在tool 0状态就是U轴中心,或者说是法兰盘的中心, 如下图所示。(图1)另外,有时候我们也会求机器人抓子未端的标定特定点到相机视野中心的距离。以上两者的求取办法...
2020-09-30 14:21:26
原图:(图1)想求出它的黑色边界,用来判断NG的部分。如下图所示,蓝色线是勇哥想求的边界。红色箭头所指的是缺陷,它有两部分。颜色较浅的灰色带和颜色深的黑色带,它们是两种类型的NG特征,其判断阈值是不同的。(图2)勇哥想到的几个方法:(一) 通过边界xld拟合椭圆设想是通过图3的两根xld,拟合出图4的椭圆。(图3)(图4)dev_close_window()
read_image (Pic2...
2020-09-29 15:03:32
继续上篇《勇哥的视觉实验:眼在手上(eye in hand)的标定实验(二) 相机位于机器人第3轴时,并且定位特征在相机视野内不可见》在上篇中,勇哥让机器人走了四个位置:pt1, pt2, pt3, pt4由于相机镜头视野较小,在这个四个位置相机看到的视野范围是不同的。而我们标定时选择是在pt1时相机看到的视野内容进行标定的,当我们在这个视野内任选一个点时,转换出来的机械坐标都可以正确让笔尖戳到这...
2020-09-27 22:18:34
继续上篇《勇哥的视觉实验:眼在手上(eye in hand)的标定实验。相机挂在x,y平台上,全部九点标定特征在相机视野内可见》这次勇哥换用Epson四轴scara机器人来做实验。如下图所示,相机挂在第3轴上面,因此这种眼在手上的工作模式分为两种情况:(1) 相机移动,不旋转(2) 相机移动并且旋转本篇研究一下第(1)种情况。(图1)我们开始九点标定。请看上图,这里勇哥还是用笔尖做为标定特征点。要...
2020-09-24 07:23:39
这种错误见于GigE接口的相机,和IP配置有关。其现象如下:如果选择否,则看到“连接”页面中有感叹号。这个时候你可能无法“连接”成功相机,也不可能采集到图片。勇哥最早看到这种现象,是四个相机的机器,如果把其中的A相机和B相机交换网口,则halcon会报这种错误。相机是海康的,因此打开它的ip配置工具。看到它显示以太网IP是[169.254.243.62] ,这个和halcon报错的提示是一样的。然...
2020-09-11 14:51:48
这个问题的现象是下面这句话报错,说是参数有问题:HOperatorSet.SetFramegrabberParam(AcqHandle, "Gain", 2.0);而在halcon中,连接相机后查阅参数,其中增益参数就叫Gain,这个是绝对没有写错的。而这句话的设置时机放在了取得相机设备句柄之后。 HOperatorSet.OpenFramegrabber("HMV...
2020-09-08 21:42:52
时间已经到了2020年了,勇哥突然觉得在两台电脑间如果还用网线传输数据,已经是落后时代的操作了。其实到昨天之前我觉得用网线传输文件也没什么不方便。但是今天不同,因为我想在客厅用一台笔记本电脑连接到房间的台式机上去拷贝文件,最好是能远程桌面也可以。所以今天勇哥想好好研究一下怎么把这个古老的网线操作进化。(一)把房间的台式电脑变为wifi热点,并共享文件勇哥房间的台式电脑配了一个USB无线网卡,这个是...
2020-09-05 15:06:55
(一)注意下面的img不能放在线程外面写。而是要放在lamada写法的线程里面。 public string ccdTopWork()
{
HObject img = new HObject();
img.Dispose();
var time = stringHelper.GetHHmm...
2020-09-04 13:47:36
勇哥一次在pull下来的内容出现合并冲突。我们知道这种情况下就是处理一<<<<<和>>>>>之间的部分。<<<<<<< HEADnew new new new code=======old old old code>>>>>>> xxxxxxxxxxxxx...
2020-08-29 15:57:41
海康工业相机SDK Halcon接口是比较好用, 它使得我们可以利用halcon的语法利用SDK的功能.之前勇哥写了一篇用halcon代码演示使用方法的贴子. http://47.98.154.65/?id=1427 现在写一个C#的应用类, 方便自己也方便了大家.勇哥写了个应用类, 如下:using HalconDotNet;
using MvCamCtrl.NET;
using netM...
2020-08-28 21:40:31
这个适配层的作用是作为SDK的Halcon插件。何在Halcon导出代码中实现连续采集、软触发采集、硬触发采集。有了这个东西,就可以用halcon的方式来调用SDK的功能。这个适配层的介绍你可以在SDK安装后,在其目录下找到。不过这个手册讲的是怎么在C++中调用的,勇哥在后面的介绍中用halcon的代码来演示的。注意:虽然SDK目录下只提供了halcon18的导入文件,如下图:但是其它这个halc...
2020-08-25 16:34:43
为啥勇哥对这个虚拟磁盘软件有兴趣呢?多相机的设备中,并发拍照保存图片操作是非常频繁的,对机械硬盘损耗很大。我是想用这个软件把内存虚拟几个G的磁盘出来,做为图片保存的缓存来使用,这要必定极大的减轻磁盘读写占用率,以及磁盘的硬件损耗。我知道有些人会因为这个目的为电脑加配一块SSD磁盘,其实感觉用内存虚拟盘也可以达到类似的效果。唯一不方便的我们的代码要考虑在适当的时机把内存盘的图片移动到机械硬盘上去,因...
2020-08-24 20:32:32
现象是下面代码在halcon窗口上显示字符串,遇到非汉字字符则显示不出来。下图中符号"[", "]", 还有数字都无法显示。代码如下: Window.SetColor("red");
Window.SetTposition(30, 30);
Window.WriteString(string.Format("[侧面齿上碰...
2020-08-22 11:46:14
opencv形态学运算opencv形态学运算形态学是生物学中研究动物和植物结构的一个学科分支。数学形态学是以形态为基础对图像进行分析的数学工具。基本思想是用具有一定形态的结构元素去度量和提取图像中的对应形状以达到对图像分析和识别的目的。形态学图像处理的数学基础是集合论。1964,Matheron指导下的Serra做岩相学分析。1966年命名Mathematical Morphology。1968年...
2020-08-19 22:45:07
勇哥手上有几个案子用到了海康工业相机,为了方便自己,简单写了一个操作类。目前初步出了一个v1.0,功能围绕项目需要,因此十分简单,暂支持下面的内容:连续触发和外部信号触发外部触发时的软件触发模式枚举设备列表可以看到连断线重连都没做。先放上来吧,以后会持续完善它,并收录到netMarketing类库。对于怎么接外部触发信号,请参考下面的贴子:http://47.98.154.65/?id=1420...