2018-09-30 10:19:49
细谈工业相机ccd与cmos的差别 CCD,英文全称:Charge coupled Device,中文全称:电荷耦合元件,可以称为CCD图像传感器。CCD是一种半导体器件,能够把光学影像转化为数字信号。在工业相机中,如果按照工业芯片来分的话,比较常见的就是ccd工业相机和cmos工业相机。1、 耗电量差异:CMOS采用主动式图像采集方式,感光二极管所产生的电荷会直接由旁边的电晶体放大输出;而CC...
2018-09-29 16:01:09
本文是勇哥很早的时候写的一篇,如果想知道更多的信息,请参阅勇哥另一篇更详细的文章:《勇哥的视觉实验:halcon的标定助手》"安装"面板中:描述文件要选择你手里的halcon标定板的对应的描述文件. 例如笔者手中是30*30mm的标定板, 就使用图中所示的描述文件.我手里这片标定板厚度为3.050mm测试相机是广角镜头, 非远心相机单个像元的宽与高,焦距应该询问相机厂商, 这里...
2018-09-28 16:43:38
(一)数字图像基础概念1、数字图像:一幅图像可以定义为一个二维函数f(x,y),其中x和y是空间(平面)坐标,而在任何一对空间坐标(x,y)处的幅值f称为图像该点处的强度或灰度。当x,y和灰度值f是有限的离散数值时,我们称该图像为数字图像。简而言之,数字图像就是离散的灰度集。2、像素:数字图像是由有限数量的元素组成的,每个元素都有特定的位置和幅值,这些元素我们称之为像素。(二)halcon数据结构...
2018-09-28 16:31:53
素材如下:代码如下, 带注释: *读取并截取图片
dev_close_window()
read_image (Image, 'C:/Users/Administrator/Desktop/微信截图_20180928100130.png')
crop_rectangle1 (Image, ImagePart, 75, 0, 400, 400)
g...
2018-09-27 18:15:30
遇上一个项目,需要将多幅图片进行拼接。 研究了一下halcon中的tile_images_offset算子,这个算子可以完成类似以下结构的图片拼接工作: 算子签名: tile_images_offset(Images : TiledImage : OffsetRow, OffsetCol, Row1, Col1, Row2, Col2, Width, Height : ) 其中OffsetRow,...
2018-09-24 14:23:02
1、Developdev_display 在现有图形窗口中显示图像目标。dev_set_color 设置一个或更多输出颜色,通常用于设置region或者xld的颜色。dev_set_draw 定义区域填充模式,可选项有fill和margindev_set_line_width 定义区域轮廓输出的线宽。dev_set_shape 定义区域输出形状,例如以矩形显示或者以圆形显示,这样可以更...
2018-09-24 14:07:10
机器视觉工程应用主要可划分为硬件和软件两大部分。硬件:工程应用的第一步就是硬件选型。硬件选型很关键,因为它是你后面工作的基础。主要是光源、工业相机和镜头选择。软件:目前业内商业库主要有Halcon,康耐视,DALSA,evision,NI等,开源库有OpenCV.其中NI的labview+vision模块。机器视觉工程应用的基本开发思路是:一、图像采集,二、图像分割,三、形态学处理,四、特征提取,...
2018-09-03 14:24:01
这款BFLY-PGE-50A2M-CS工业相机, 500万像素. 配置网卡选用 SCI-GEP-4, 这是内部带4针电压专供的GigE接口相机的网卡. 如果你把GigE接口的网线插到普通网卡, 会发现网卡信号灯都不会亮.有些型号的GigE接口的相机,则需要在相机上的圆型接口接入外接电源. 而这一款则不需要.这款相机配套的官方驱动及管理工具为: 安装好后, 下面两个程序是我们需要的. 要注意的是:...
2018-07-16 11:09:20
halcon测量的第一步,就是找边。边找精准了,计算两边的距离才可能精准。由于物料的管控不可能做到每片抽检,或者根本不被管控。这就要求我的抓边效果能最大化适合各种可能性。下面的程序使用鼠标确定测量框,根据设定参数拟合出一条质量可调的XLD线条。图1 鼠标绘制测量框图2 拟合完成的线条,这个例子由50个点拟合出XLD线条。十字点起标识点的作用。找线方法调用代码:fpath:='C:/Us...
2018-07-16 10:56:46
友发来两个小项目,要求亚像素精度。突然想问几个问题:1、何为亚像素?2、何为亚像素精度?3、使用亚像素测量,系统应注意什么?1、何谓亚像素?面阵摄像机的成像面以像素为最小单位。例如某CMOS摄像芯片,其像素间距为5.2微米。摄像机拍摄时,将物理世界中连续的图像进行了离散化处理。到成像面上每一个像素点只代表其附近的颜色。至于“附近”到什么程度?就很困难解释。两个像素之间有5.2微米的距离,在宏观上可...
2018-07-13 22:36:21
dyn_threshold算子动态阈值算子应付以下情况:对于一些应用来说,确定一个全局阈值是不可能的,比如,因为没有通用的参考图像来确定阴影校正图像的背景是非均匀的物体在局部范围内通常比背景亮些或者黑些在这种情况下,寺找一个固定阈值来区分物体和背景是丌太容易的问题: 局部邻域的确定局部邻域可以由平滑滤波器来确定(比如, mean_image或binomial_filter)动态阈值算子的经验说明:...
2018-07-13 21:07:16
合并region select_shape(ConnectedRegions1, SelectedRegions1, 'area', 'and', 550, 99999)
select_obj(SelectedRegions1, obj1, 1)
select_obj(SelectedRegions1, obj2, 2)
unio...
2018-07-13 20:14:27
继续上节的region处理。区域相减(即求差异)上原图:现在我先选择焊点之外的背景区域,然后想反转这个区域,得到焊点区域,该怎么做?代码如下: gen_rectangle1(roi1, 813, 578, 913, 774)
reduce_domain(GrayImage, roi1, ImageReduced)
mean_image(ImageReduced, Imag...
2018-07-13 13:57:52
一,基本的图像通道知识在图像处理中有一个很重要的概念叫图像通道,在RGB色彩模式下就是指那单独的红色、绿色、蓝色部分。也就是说,一幅完整的图像,是由红色绿色蓝色三个通道组成的。他们共同作用产生了完整的图像。 一幅完整的图像,红色绿色蓝色三个通道缺一不可。即使图像中看起来没有蓝色,只能说蓝色光的亮度均为0,但不能说没有蓝色通道存在。 “存在、亮度为零”和“不存在”是两个不同的概念。...
2018-07-13 13:20:51
ROI (Region of Interest),感兴趣区域。顾名思义,就是你主要想处理的区域。Halcon中处理的对象分为三类,分别是图像(image),区域(region),XLD(extended line description)(主要用在亚像素边缘的提取)。所以从这里可以知道,ROI的作用,其一是加快程序处理速度,原因在于,是程序处理只需处理ROI,其他区域直接跳过。其二,在图像匹配中...
2018-07-12 14:05:59
dev_get_preferences和dev_set_preferences经常一起使用。dev_get_preferences为查询HDevelop参数。'graphics_window_context_menu':Returns whether a right click into the graphics window opens a context menu or not...
2018-07-12 14:03:44
halcon中的选择语句的用法。作者:骑蚂蚁上高速MATLAB提供三种选择结构,分别是if语句、switch语句和try语句。1.if语句在MATLAB中,if语句有3种格式。(1)单分支if语句:if 条件语句组end当条件成立时,则执行语句组,执行完之后继续执行if语句的后继语句,若条件不成立,则直接执行if语句的后继语句。(2)双分支if语句:if 条件语句组1else语句组2end当条件成...
2018-07-12 14:02:48
30*30 规格的标定板的规格 黑色圆点行数: 7 黑色圆点列数: 7 外边框长度: 30mm*30mm 内边框长度: 28.125mm*28.125mm 即:黑色边框线宽为一个圆点半径(0.9375) 黑色圆点半径: 0.9375mm 圆点中心间距: 3.75mm 裁剪宽度: 30.75mm*30.75mm 即:由黑色边框向外延伸0.375...
2018-07-12 13:59:52
上一节遇到函数调用的问题。本节将学习函数调用。也就是创建新的过程以及调用。创建新的过程有以下几种方法:第一种:第二种创建完过程之后,就可以编辑新的过程了。包括名称,参数设置等等。设置完成后,应用,确定。最后编辑完main函数后记得保存。...
2018-07-12 13:58:01
* This program compares the result of different operators
* which detect points of interest
*
dev_update_off ()
Dark := 100
Background := 175
Light := 250
Angle := rad(45)
Size := 3
create_t...
2018-07-12 13:53:12
1、Halcon的自我描述Program LogicØ Each program consists of a sequence of HALCON operatorsØ The program can be structured into proceduresØ The sequence can be extended by using control operators like if, for...
2018-07-12 13:50:50
摄像机标定程序:注意:E:/calibration_image :为标定图像文件路径 'E:/calibration_description/caltab_123mm.descr:为标定描述文件路径*作者:骑蚂蚁上高速*程序开始list_files ('E:/calibration_image', 'files', ImageFiles)TmpCt...
2018-07-12 13:49:26
1.read_cam_par( : : CamParFile : CameraParam)从文件夹中读取相机的内参数。2.disp_caltab( : : WindowHandle, CalTabDescrFile, CameraParam, CaltabPose, ScaleFac : )利用相机内外参数,把标定板模型投影到图像平面,显示标定点和连接线,X,Y轴也被显示出来。3.vector_t...
2018-07-12 13:48:38
在HALCON所有算子中,变量皆是如上格式,即:图像输入:图像输出:控制输入:控制输出,其中四个参数任意一个可以为空。控制输入量可以是变量、常量、表达式,控制输出以及图像输入和输入必须是变量,以存入算子计算结果中。1.caltab_points:从标定板中读取marks中心坐标,该坐标值是标定板坐标系统里的坐标值,该坐标系统以标定板为参照,向右为X正,下为Y正,垂直标定板向下为Z正。该算子控制输出...
2018-07-12 13:48:01
Halcon标定文件的生成,需要有以下几个步骤:1.创建一个标定数据模板,由create_calib_data算来完成。2.指定相机的类型,初始化相机内部参数,由set_calib_data_cam_param算子来完成。3.指定标定板的描述文件,由set_calib_data_calib_object算子完成。4.收集观察数据,有算子set_calib_data_observ_points完成。...
2018-07-12 13:47:16
何为机器视觉相机标定? 简单来说,就是复原相机模型的3D空间至2D空间的一一对应关系。标定的作用其一就是为了求取畸变系数(因为经过镜头等成像后,或多或少都有畸变),其二是为了得到空间坐标系和图像坐标系的对应关系。 确认光学系统的性能,复原相机模型的3D空间至2D空间的一一对应关系。标定的作用其一就是为了求取畸变系数(因为经过镜头等成像后,或多或少都有畸变),其二是为了得到空间坐标系和图...
2018-07-12 13:45:26
的图形绘制。同时学习一下 gen_rectangle1 和 gen_rectangle2 的两个算子之间的区别。程序如下:dev_update_off ()Dark := 100Background := 175Light := 250gen_image_const (Image, 'byte', 256, 280)scale_image (Image, Image, 1, Bac...
2018-07-12 13:37:25
边缘检测的定义 :使用数学方法提取图像像元中具有亮度值(灰度)空间方向梯度大的边、线特征的过程。边缘 是指周围像素灰度有阶跃变化或屋顶等变化的那些像素的集合。图像的边缘对应着图像灰度的不连续性。显然图像的边缘很少是从一个灰度跳到另一个灰度这样的理想状况。真实图像的边缘通常都具有有限的宽度呈现出陡峭的斜坡状。边缘的锐利程度由图像灰度的梯度决定。梯度是指灰度变化的最快的方向和数量。常见的边缘点有三种...
2018-07-12 13:32:24
HALCON 有两种基本的数据型态 : 图像数据 (iconic ,例如image, region和XLD contours) 以及控制数据 ( control ,例如 变量,整数,字符串, handle 等等 ) 。所有运算子的参数都是以相同的方式排列:输入图像,输出图像,输入控制,输出控制。 当然,并非所有的运算子都具有上列四类参数,不过参数排列的次序依旧相同。例如:threshold(Im...