[置顶]python知识导航贴,持续更新

[置顶]C# 语言高级特性知识导航贴,持续更新

[置顶]netMarketing类库: 类库说明

[置顶]本站视觉相关教程整理贴子,持续更新

[置顶]C++相关导航贴,持续更新

[置顶]本站收费服务公告(netMarketing源码,工业自动化行业培训班等)

[置顶]2020年勇哥的机器视觉实验项目清单(大纲)

[置顶]本站连载贴子系列,持续更新中……

[置顶]勇哥的免费视频教程清单

[置顶]勇哥在B站发布的视频清单

[置顶]运动控制专题,持续更新

halcon17支持1394的相机吗?

halcon17支持1394的相机吗?勇哥可以告诉你:不支持!!想不到吧!勇哥手里的一款point grey的1394接口的相机就发现在halcon17怎么也找不到。我记得以前的win7 64位系统下是找得到的,现在换成了win10 64位就找不到了。其实不是系统的原因,而是,之前用的是halcon10,现在用了hacon17才发现找不到相机了。解决办法是,到halcon的网站上下载对应的接口。下...

C#和halcon的混编程序出现序内存泄露、句柄持续增加、视觉程序运行越来越慢等问题的处理

这个话题非常重要。勇哥苦于手中的项目遇到这样的问题。这些问题表现是:(1)视觉程序内存占用会越来越大。这种内存变大通常是缓慢变大,几天不关机持续运行的话,大到几个G也不稀罕。通常,急速内存变大要容易找到问题些,最怕的是缓慢变大。(2) 视觉程序会越运行越慢,会影响设备的PPM。通常工厂里的电脑一辈子不会关机,你可别指望他们会每班给你重启软件一次。(3)程序句柄越来越多,大至几万都有可能。这是一种什...

三角函数超入门(4)钝角三角比、三角形面积

见下图,求三角形ΔABC的面积。 按三角形面积公式 (面积=底×高÷2。其中,a是三角形的底,h是底所对应的高)设底边b=20,经过顶点B作底边CA的垂直线,则点H就会落在CA的延长线上,BH就是三角形的高h,这和图3-1-2测量海拔高度是一样的。在做高h时,我们创建了一个三角形Δ由于h/c=sin40° ,得h=c*sin40° ∴ SΔABC= 1/2*b*h=1/2*20*18*sin40°...

三角函数超入门(3)三角比之间的关系

三角函数里有许多公式,需要牢牢记住的只有6个,其它的都是其的变形。证明公式(1): a2+b2=c2a2/c2+b2/c2=1(a/c)2+(b/c)2=1假设∠A=θ ,则a/c=sinθ, b/c=cosθ∴ sin2θ+cos2θ=1证明公式(2)利用60°度直角可以验证公式(2)tanθ=sinθ/cosθtan60°=sin60°/cos60°=(√3/2)/(1/2)=√3下面来证明...

三角函数超入门(2)锐角三角形的三角比

特殊三角形的sin,cos和tan内角为30°,45°,60° 的特殊三角形,其三角比如下:sin, cos, tan的一些规律解题如下题。如果只是算一算x,y是多少没多少意思。勇哥用halcon的算子来画出题意并解题。下面的代码中,我们把c=20改为c=200,这样屏幕上的线条长一点方便观察。dev_close_window() dev_open_window(0, 0, 400, 400,...

halcon中不使用模板进行ROI跟随

如果不使用模板来进行ROI更随,该如何做到呢?勇哥先把图片放上来:我想所有人都会想到用形态学算法,阈值勾出电池本体,然后取得电池角度与位置信息,就可以ROI跟随了。难点在哪里呢?我们的目的是:“取电池几何中心的位置与电池的方向。”那么电池的几何中心可以是电池整个外接最小矩形的中心,这个比较容易办到的。但是方向呢?我们可以取电矩形本体的外接矩形的角度做为方向,但是这一点因为极耳的干扰,我们取到本体的...

halcon差异运算去掉背景图像

如果是下相机对位,有时候会碰到相机拍到复杂背景,造成需要处理的工件被背景干扰的问题。这时候有一个办法是去掉背景。一般来讲,每次拍到的背景应该是一样的,只是每次拍到的工件不一样。勇哥直接上图片与演示代码,最后介绍一下相关的算子。(图1 背景图像)(图2 含有背景图像的电芯)下面是代码处理的结果。(图3 电池本体之外的背景全部镂空的效果)(图4 含有膨胀区域的处理结果)read_image(b...

二维点的旋转 续一(halcon演示代码)

继续上一篇,勇哥用halcon来实现上述的旋转矩阵效果。halcon的矩阵运算流程如下:① 通过hom_mat2d_identity算子创建一个初始化矩阵(即[1.0, 0.0, 0.0, 0.0, 1.0, 0.0]);② 在初始化矩阵的基础上,使用hom_mat2d_translate(平移)、hom_mat2d_rotate(旋转)、hom_mat2d_scale(缩放)等生成仿射变换矩阵;...

halcon模板跟随找线的一个演示例子

运行程序前先创建ROI以创建模板,然后顺时针或者逆时针绘制三根直线,以确定找线的方向与距离。由于找线的时候是模板跟随的,最后得到下面的结果:代码如下:其中draw_rake,dev_display_shape_matching_result,rake,pts_to_best_line为外部算子。有需要的朋友可以找勇哥索取。dev_close_window ( ) read_image (Imag...

halcon17的找线功能

halcon17的找线功能其实是对之前halcon10版本找线方法的封装。勇哥下面这几篇文章介绍了halcon10版本的找线方法,你会发现,halcon17的找线算子的参数其实跟这篇文章介绍的差不多的。Halcon学习(27-2)halcon测量技术:找线带ROI跟随的找边测试代码(halcon代码演示)经过封装后的找线算子,还是非常好用的,你只需要给定找线的起始与终止点即可。演示代码如下:rea...

勇哥在实践中发现的halcon17的新功能介绍

(一)绘制数组的图形如下图,我测量电池的左右宽度,其结果生成在数组DistanceAry中。在之前的halcon版本中,双击数组弹出一个列表检查数据。如果想查看数据的曲线图,你得把数据导出到excel中。现在可以像下面这样了。不用把数据导入到excel中绘图了。(二)待续……--------------------- 作者:hackpig来源:www.skcircle.com版权声明:本文为博主原...

无法在 DLL“halcon”中找到名为“HLIIsUTF8Encoding”的入口点。

勇哥在把netMarketing类库由halcon10改为halcon17时,遇到载入halcon窗口时报下面的错误:无法在 DLL“halcon”中找到名为“HLIIsUTF8Encoding”的入口点。经检查,是因为程序的bin目录下缺少halcon17的halcon.dll这个文件。也就是说,只把halcondotnet.dll文件换成halcon17的是没有用的。其实,最保险的就是把hal...

halcon10的C#工程改为halcon17的正确方法

勇哥手头上的C#工程要由基于halcon10视觉的改为halcon17版的视觉。更换的原因是因为halcon17比较新比较潮,不能落伍…… 其实是因为halcon10的窗体控件以及内存泄露方面有些问题。勇哥在这里记录一下以备忘。首先把halcon17的下面两个目录下的dll全部复制到你程序的bin目录下面。然后在你的程序中,凡是用到halcondotnet的引用,全部删除,引用新版的。版本号如划线...

Epson机器人的x,y轴垂直性验证与解决办法

机器人的X轴与Y轴做垂直运动时,其夹角应该近似90度,否则机器人需要做回原点进行修正。勇哥是这样进行验证的:在吸盘上放置一个标定版,方便取得一个特征点。在视野范围内做一个L型的3个点的运动,正好让XY方向进行了相互垂直的运动。取得这3个点的像素坐标。把坐标用下面的程序计算一下,求得角度。read_image (Image, 'C:/Users/Allegro/Desktop/1.bmp&#...

Epson机器人标定后验证标定的精度(二)

接上篇。本篇讨论下面的话题:二是绕着特征点旋转,验证特征点的像素偏差,或者是转换后的机械坐标的偏差。三是做放料测试,验证实际的放料精度下面是采用特殊算法标定成功后的数据。后面主要谈谈怎么用旋转特征点的方式验证标定后的精度。因为手眼标定是把视觉像素换算成机器人的机械坐标,而本算法的原理是:把工具坐标1做到特征点上,然后走4组位置,记录4组像素与机械坐标,最后调用halcon的标定函数。因此对于这种标...

Epson机器人标定后验证标定的精度(一)

所谓的精度是指验证标定后工具1坐标系下的特征点,转为机械坐标系后再与机器人的坐标进行差值比较,越小越好。验证精度我们可以从三方面入手:一是验证特征点在视野最大范围内变换位置,考虑相机畸变因素影响下对精度的影响二是绕着特征点旋转,验证特征点的像素偏差,或者是转换后的机械坐标的偏差。三是做放料测试,验证实际的带料取放料精度。勇哥在本篇先讨论第一种方法。下面是标定后的特征点的信息标定特征点信息 像素x:...

halcon的仿射变换算子的介绍

1. 仿射变换类型 仿射变换有:平移、旋转、缩放、斜切(就是将斜体字导正)。2. 求稳定的特征点 要进行仿射变换,必须先获取变换矩阵。要获取变换矩阵,必须先获取特征点坐标、角度等信息,几何匹配和bolb是获取特征点的高效方法,除此之外还有其它方法,只要能稳定的求出特征点即可。 3.仿射变换流程 (1.)获取特征点坐标、角度 (2.)计算仿射变换矩阵 (3.)对图像、区域...

算子OpenFramegrabbe获取halcon的相机设备连接字符串

以前在使用算子OpenFramegrabbe连接相机时,一般是这样的:open_framegrabber ('DirectShow', 1, 1, 0, 0, 0, 0, 'default', 8, 'rgb', -1, 'false', 'default', 'default', 0, -1, Acq...

定义与查找形态模板,并显示创建与查找的结果(halcon代码演示)

形态模板的定义与查找是工业视觉里最基本的常用操作。下面勇哥提供一个例子。下图是定义形态模板,并且显示模板轮廓。换一张不同姿式的图片,查找模板,并显示模板轮廓、ROI、中心点。dev_set_draw ('margin') dev_set_color('green') dev_close_window() dev_open_window(0, 0, 512, 3...

halcon算子angle_lx 表示角度的图文教程

angle_lx( : : Row1, Column1, Row2, Column2 : Angle) 函数作用:计算线与水平轴间的夹角逆时针旋转向量到水平轴的角度即为结果值,该结果取决于两个点的顺序,用弧度表示,范围为[-pi, pi]上一段代码:ange_lx(Row_1, Col_1, Row_2, Col_2, Angle) ****************************...

halcon之手眼标定基本原理

手眼标定涉及的坐标系有:工件坐标系工具坐标系相机坐标系(相机坐标系里又有图像坐标系和像素坐标系,这其实就是前面讲的单目标定的内容)基坐标系手眼标定一般有两种形式:1、相机固定(eye-to-hand)我们需要的最终结果,即得到base 与 cam 的空间位置关系,即一个4*4的变换矩阵。这个可以通过移动tool带着标定板移动到相机下方不同位置角度,由相机多次拍摄标定板来计算得到。有些相机虽然固定在...

Epson四轴机器人的手眼标定(原理并附上halcon代码)

关于机器人视觉的手眼标定的原理,勇哥先放上一些教程资源:工业现场相机坐标系和机械手坐标系的标定halcon之手眼标定基本原理手眼标定的两种方式手眼标定之9点法众所周知,目前机器视觉项目,很大一部分都是引导机器人去取料 放料等工作。 这个里面就有个非常重要的工作要做。就是将相机的坐标系 映射到机器人坐标系里面,这样才可以实现视觉配合机器人动作。 通常这种标定使用有多点标定法(俗称九宫格标定法)可以...

halcon例程学习笔记(4)---count_fish_sticks.hdev基本函数使用

通过本例程巩固了对剖面灰度值的描述,并进行测量,算子使用同“halcon例程学习笔记(2)”。此例程进一步学习了halcon中的基本函数的使用方法:subset 求取一个数组的子集find 查找相应条件的值的位置索引数组的错位减法的使用。其它基本图像处理基本算子,可以查阅halcon使用手册,详细了解。例程代码如下:dev_update_off () dev_close_window (...

halcon例程学习笔记(3)----check_smd_tilt.hdev

本例程来做halcon10.0版本中的一维函数中check_smd_tilt.hdev例程,通过此例程可以学习到如何使用halcon中算子measure_projection通过投影图像上垂直于剖面线方向的灰度值来提取1D灰度剖面,如下是对此算子的详细理解:更多关于测量的算子理解,可以参考北京大恒宣讲的PPT halcon测量技术。下面例程是检测SMDS是否与近水平或者相对相机是否倾斜。分析图像...

Halcon例程学习笔记(2)—— Particle

其为分析液体中的成分,得出区域中的平均灰度和面积;在液体二值图像中有几个亮斑,需要提前去除;液体成分中灰度变化不明显,直接采用全局阈值处理效果不佳;读取鼠标按键数值,并选择区域。threshold (Image, Large, 110, 255) * Dilate regions with a circular structuring element dilation_circle (Larg...

Halcon例程学习笔记(1)——Atoms

这个例程的目的是使用算子来找出结构不规则的原则,其中涉及到一些算子:crop_rectangle1:从图像中截取矩形图像 gauss_filter:高斯滤波 watersheds:图像分水岭算法 smallest_rectangle1:平行于坐标轴的最小外接矩形Part Ⅰ 初始化程序dev_update_off () dev_close_window () dev_set_draw...

halcon例程学习笔记(11) 一维码、二维码识别

1、一维条码一维条码:由一组规则排列的条、空以及对应的字符组成的标记,“条”指对光线反射率较低的部分,“空”指对光线反射率较高的部分,这些条和空组成的数据表达一定的信息,并能够用特定的设备识读,转换成与计算机兼容的二进制和十进制信息。 一维条码的码制: EAN码、39码、交叉25码、UPC码、128码、93码,ISBN码,及Codabar(库德巴码)等。 EAN 码:是国际通用的符号体系,是...

halcon视觉检测电芯表面是否有条码

要检查电芯表面是否有条码,可以知道电芯是否放反面了,起到视觉防呆的作用。勇哥能想到的思路是:一维,二维码识别,能识别则为有码面。框选区域,算子intensity计算区域灰度值的平均值或者方差,以此来判断是否为有码面。下面的程序两种方法都用到,把代码做个记录,供大家参考。其结果可以看到,完美的情况下,两种方法都可以。但其实还是有问题的,比如如果电池表面贴了膜,那么因为反光的原因,两种方法都有可能会误...

尺寸测量设备用到的一些算法(C#代码)

勇哥目前在一款尺寸测量设备中,应用到了一些算法,在这里做记录。下面是算法用到的一些函数。/// <summary> /// 新建一条拟合直线 /// </summary> /// <param name="linePt"></param> /// <pa...

已知直线的起始端点与终止端点,移动到指定点的位置(C#代码演示)

已知直线的起始端点与终止端点,移动到指定点的位置。这个必须要考虑直线有可能是任意角度的问题。#代码如下:要注意,下面的代码需要安装netMarketing类库。using HalconDotNet; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data;...
会员中心
搜索
«    2024年4月    »
1234567
891011121314
15161718192021
22232425262728
2930
网站分类
标签列表
最新留言
    热门文章 | 热评文章 | 随机文章
文章归档
友情链接
  • 订阅本站的 RSS 2.0 新闻聚合
  • 扫描加本站机器视觉QQ群,验证答案为:halcon勇哥的机器视觉
  • 点击查阅微信群二维码
  • 扫描加勇哥的非标自动化群,验证答案:C#/C++/VB勇哥的非标自动化群
  • 扫描加站长微信:站长微信:abc496103864
  • 扫描加站长QQ:
  • 扫描赞赏本站:
  • 留言板:

Powered By Z-BlogPHP 1.7.2

Copyright Your skcircle.com Rights Reserved.

鄂ICP备18008319号


站长QQ:496103864 微信:abc496103864