HALCON编程及工程应用 第4章 HALCON图像采集
工业机器视觉基础教程-halcon篇
工业机器视觉基础教程-halcon篇工业机器视觉是指应用机器视觉技术在工业生产中,实现产品质量检测、工业自动化等一系列目标。
而HALCON则是一款功能齐全、具备丰富图像处理库的应用授权软件。
本文将介绍HALCON图像处理中的基本操作和应用。
一、HALCON图像处理的基本操作1.图像加载:使用read_image操作,该操作可以加载多种图像格式的图片文件。
如:read_image(Image, “test.jpg”)。
2.图像显示:使用disp_image操作可以对加载图像进行可视化处理并显示在界面上。
如:disp_image(Image)。
3.图像缩放:resize_image操作可以对图像进行缩放处理,缩放后的图像尺寸可以根据需求调整。
如:resize_image(Image,Image2,800,600,”bilinear”)。
4.图像灰度化:使用rgb1_to_gray操作可以将彩色图像转化为灰度图像。
如:rgb1_to_gray(Image,Image2)。
5.边缘检测:使用edge_image操作可以对图像进行边缘检测,检测出目标区域的轮廓和边缘。
如:edge_image(Image,Image2,”canny”)。
6.形态学操作:morph_operator操作可以对图像进行形态学操作,如膨胀、腐蚀、开、闭等。
如:morph_operator(Image,Image2,”dilation”,5)。
7.颜色分割:color_segmentation操作可以根据像素的颜色信息进行分割处理,一般是针对彩色图像。
如:color_segmentation (Image,Image2,“HSV”,[1, 0,0],[255, 255, 255])。
二、HALCON图像处理的应用1.工业质检:HALCON图像处理可以应用于工业质检领域,在生产线上进行产品质量检测,包括外观、尺寸、缺陷等。
2.智能制造:HALCON图像处理可以实现机器视觉智能制造,根据生产工艺流程和生产数据进行智能制造调节和优化。
MFC调用HALCON实现相机采图和图像显示
MFC调用HALCON实现相机采图和图像显示一、相机采图1、查询设备信息HTuple Information, Values;info_framegrabber("GigEVision", "device", &Information, &Values);Information用来获取相机信息Values用来获取相机名称2、打开相机HTuple m_hFrameGrabber; //相机句柄open_framegrabber("GigEVision",0,0,0,0,0,0,"progressive",-1,"default",-1,"false","default",Values[0],0,-1,&m_hFrameGrabber);打开第二个相机open_framegrabber("GigEVision",0,0,0,0,0,0,"progressive",-1,"default",-1,"false","default",Values[1],0,-1,&m_hFrameGrabber);注意相机名的调用方法。
3、获取相机参数HTuple m_ImageWidth;get_framegrabber_param(m_hFrameGrabber,"m_ImageWidt h",&m_ImageWidth);4、单帧抓取Hobject * pImage; //图片指针grab_image(pImage,m_hFrameGrabber);由于grab_image函数不能中断执行,因此在多线程中调用时,需要注意对它的原子保护。
Halcon采集图像ImageAcquisition解析
Halcon采集图像ImageAcquisition解析很明显,图像的采集是所有机器视觉应⽤中必须解决的问题,HALCON提供了为各种图像采集设备执⾏这种交互的接⼝,图像采集的任务被简化为⼏⾏代码,只需⼏个操作符的调⽤,更重要的是,这种简单并不是以限制可⽤功能为代价。
使⽤HALCON,可以在不同的时间模式下从不同的采集设备和相机中获取图像。
除了从相机中获取图像外,HALCON还可以将存储在⽂件中的图像显⽰出来(⽀持的⽂件格式:BMP、TIFF、GIF、JPEG、PNG、PNM、PCX、XWD)。
基本概念⽤HALCON获取图像基本上只需要三个步骤,⽽从⽂件中读取图像则更为简单:只需调⽤read_image操作符即可。
打开图像采集设备如果想从⼀个摄像机中获取图像,第⼀步就是要连接到这个设备。
HALCON可以解决所有与设备相关的细节问题;只需要调⽤算⼦open_framegrabber,指定相应的图像采集接⼝名称。
还有⼀个 "虚拟 "的图像采集界⾯叫File。
顾名思义,这个 "抓帧器 "读取⽂件中的图像,以及所谓的图像序列⽂件。
后者是Halcon特有的⽂件类型,典型的扩展名是.seq,它们包含⼀个图像⽂件名的列表,⽤新的⾏隔开(可以⽤⽂本编辑器很容易地创建它),如果你链接到这样的序列,随后调⽤grab_image就会返回⽂件中指定的序列图像。
然后,不必创建⼀个序列⽂件,⽽只需指定⽬录名称⽽不是序列⽂件作为参数'CameraType'的值。
后续调⽤grab_image会返回在指定的图像⽬录中找到的图像。
如果想⽤图像⽂件序列或者在真实的图像采集设备上来测试应⽤程序,那么以上这两种⽅法都很有⽤。
获取图像连接到设备后,只需调⽤grab_image就可以获取图像。
要从磁盘中加载图像,需要使⽤read_image,图像会在当前⽬录中和当前设备环境变量HALCONIMAGES指定的⽬录中被搜索到。
工业机器视觉基础教程-halcon篇
工业机器视觉基础教程-halcon篇
工业机器视觉是利用计算机视觉技术,通过各种相机、传感器等设备,实现对工业制造过程中产品的检测、识别、测量等操作,以提高生产效率和质量。
其中,Halcon 是一款商业化的
视觉软件,是基于面向对象编程思想和C++语言构建而成的
算法和应用开发平台。
Halcon 的特点之一是具有强大的图像处理函数库,可用于高
级图像处理和机器视觉应用的开发。
例如,常常用到的图像预处理(如滤波、抠图、滑动窗口等)、角点检测、边缘检测、二值化、形态学操作、直线/圆检测等操作。
此外,还有一些
高级操作,如三维重建、模板匹配、字符识别、色彩分割、基于深度学习的图像识别等。
使用 Halcon 进行机器视觉应用的第一步是了解其标定系统以
及相应的摄像机标定应用。
Halcon 通过利用多个视觉原理,
并结合了强大的2D/3D机器视觉算法和成像技术,能够实现
高精度的相机标定,并能够使用标定好的摄像机进行高效、准确的三维参数计算和分析。
此外,还需要针对具体的应用场景,对图像进行设计、预处理和分析,以得到最终的应用程序。
除此之外,还需要考虑实际工业现场的环境因素,例如光照、噪声、运动等因素对识别、测量的影响。
在这种情况下,可以使用 halcon 系统灵活的参数调整和自动化算法设计等技术,
来实现对产品的全方位分析、检测及检验,提高生产效益和质量。
总之,作为一款行业顶尖的机器视觉软件,Halcon 在应用于各种机器视觉应用方面都有良好的表现,并能帮助工程师快速高效地进行图像处理、算法设计,以及现场调试和优化案例。
HALCON数字图像处理-第4章 HALCON数据结构
行作程用编:码计(算又线称段游的程中编心码、)长是度相、对方简向单。的编码技术。行程编码 的主要思路是将一个相同值的连续串用一个代表值和串长来代替。 例如,有一个字符串“aaabccddddd”,行程编码可以用 H“AL3CaO1Nb数2c字5d图”像来处表理示。图4-19是区域,表4-2是根据图4-19的区
于其具有旋转、平移、尺度等不变特征又称为不变距。在图 像处理中不变距可以作为一个重要的特征来表示区域。 HALCON数字图像处理
4.2 HALCON Region区域
3.区域等效椭圆特征 二阶中心距的一个重要应用就是可以定义一个区域
的方向与范围,而区域的方向和范围可以用等效椭圆来 表示4.。区域凸性特征
HALCON数字图像处理
4.3 HALCON XLD轮廓 2.XLD其他特征 在讲解XLD其他特征之前,需要使用 test_self_intersection_xld算子判断XLD是否自相交。只有 在XLD不自相交的时候有些特征参数才有意义。
HALCON数字图像处理
4.4 Handle句柄
句柄是一个是用来标识对象或者项目的标识符,可以用来描述 窗体、文件等,值得注意的是句柄不能是常量。
g方e向n_是re区gi域on的_p基oi本nt特s(征:R,eg下io面n:几Ro个ws算,C子ol与um区ns域:)方向有关。 (1) li(ne2_)oroireinetnattaitoino(n:_:rReogwiBoeng(iRne,gCioolnBse:g:i:nP,hRio)wEnd,ColEnd:P HhAiL)CON数字图像处理
halcon教程
halcon教程Halcon是一种广泛应用于机器视觉领域的软件库,它提供了丰富的图像处理和分析功能。
本教程将介绍Halcon的基本使用方法,涵盖图像读取、预处理、特征提取、目标检测等常用操作。
1. 图像读取使用Halcon的read_image函数可以从文件中读取图像数据。
可以通过指定文件路径来读取图像,例如:read_image(Image, 'image.jpg')2. 图像预处理在图像处理之前,通常需要对图像进行一些预处理操作,以改善后续处理的效果。
Halcon提供了丰富的预处理函数,如灰度化、平滑、滤波等。
例如,可以使用以下代码对图像进行灰度化处理:gray_image(Image, GrayImage)3. 特征提取Halcon提供了多种特征提取函数,可以从图像中获取有用的信息。
常用的特征包括边缘、角点、斑点等。
例如,可以使用find_edges函数在图像中提取边缘信息:find_edges(GrayImage, Edges, 10, 40)4. 目标检测目标检测是机器视觉中的一个重要任务,Halcon提供了多种目标检测函数和算法。
例如,可以使用find_shape_models函数对图像中的形状进行检测:find_shape_models(GrayImage, Model, AngleStart, AngleExtent, MinScore, NumMatches, SubPixel, Greediness, Result)以上是一些Halcon的基本用法,通过学习这些基础知识,您可以在机器视觉应用中更好地运用Halcon库进行图像处理和分析。
希望这些信息对您有所帮助!。
Halcon的图像获取的实例
Halcon的图像获取的实例重新整理之前旧网站上发布过的帖子。
比较常用的几个图像获取的例子,之前刚刚学习halcon的时候写的,作为入门的第一步,还是值得再分享一下的。
*=================分割线1==================*图像获取的基本代码(1)*读取路径下的图片,image1read_image(image1,'F:/Halcon test/barcode/image/1.png') *=================分割线2==================*图像获取的基本代码(2)*读取路径下的多张图片,image2imagepath :=[]*建立一个图像读取的数组,命名为imagepath。
imagepath[0]:='F:/Halcon test/barcode/image/2.png'imagepath[1]:='F:/Halcon test/barcode/image/3.png'imagepath[2]:='F:/Halcon test/barcode/image/4.png'imagepath[3]:='F:/Halcon test/barcode/image/5.png'*读取4张图片的路径for i:=0 to 3 by 1read_image(image2,imagepath[i])endfor*=================分割线3==================*图像获取的基本代码(3)*读取文件夹下的某些图片,image3for i:=1 to 5 by 1read_image(image3,'F:/Halcontest/barcode/image/'+i+'.png')endfor*=================分割线4==================*图像获取的基本代码(4)*读取文件夹下的所有图片和文件夹,image4* Code generated by Image Acquisition 01list_files ('F:/Halcon test/barcode/image', ['files','directories','recursive','max_depth 2','follow_links'], ImageFiles)tuple_regexp_select (ImageFiles, ['\\.(tif|tiff|gif|bmp|jpg|jpeg|jp2|png|pcx|pgm|ppm|pbm|xwd|ima) $','ignore_case'], ImageFiles)*'ignore_case':忽略大小写*'\\.' --> '.'for Index := 0 to |ImageFiles| - 1 by 1read_image (Image4, ImageFiles[Index])* Do somethingendfor*=================分割线5==================*图像获取的基本代码(5)*连接摄像机读取图像,image5* Code generated by Image Acquisition 02open_framegrabber ('DirectShow', 1, 1, 0, 0, 0, 0, 'default', 8, 'rgb', -1, 'false', 'default', '0', -1, -1, AcqHandle)grab_image_start (AcqHandle, -1)while (true)grab_image_async (Image5, AcqHandle, -1)* Do somethingendwhileclose_framegrabber (AcqHandle)。
halcon连接图像采集设备与halcon多线程采图
Halcon连接采图设备与Halcon多线程采图大恒图像娄训志ØHalcon 介绍ØHalcon 采图知识与常用算子ØHalcon 连接采图设备ØHalcon 连接采图设备编程应用ØHalcon 连接多个采图设备ØHalcon 与多线程采图Ø相关背景MVTec公司是世界上最著名的机器视觉软件公司,也是世界上标准机器视觉软件的领导者。
MVTec公司具有强大的开发和技术支持能力,50%的成员具有博士学位和机器视觉领域的长期工作经验。
Ø什么是HalconHalcon是在世界范围内广泛使用的机器视觉软件。
用户可以利用其开放式结构快速开发图像处理和机器视觉应用软件。
ØHalcon包含些什么Halcon包含Blob分析,形态学,模式识别与匹配,测量,2、3D相机标定,双目视觉,立体匹配等性能杰出的图像算法,以及图像采集,I/O 通信等工具。
Ø为什么使用HalconHalcon支持Linux/UNIX,Windows32/64位等操作系统,所有的库均可以使用C,C++,C#,VB和delphi编程语言访问,使用比较方便。
Halcon能够从软件上帮助你,解决绝大多数机器视觉软件问题。
Ø图像采集Halcon尽可能地保证与硬件无关,支持大多数图像采集卡,及带有DirectShow和IEEE 1394驱动等的采集设备。
Halcon采集图像的特点•图像采集链接库,独立于其它图像处理链接库•一致的代码模板(磁盘文件和图像采集设备)•支持多个采集设备•同步和异步采集•支持外触发•图像尺寸、图像位数、颜色空间可调•支持颜色查找表•支持与设备相关的参数调整ØImages in Halcona.Multiple channels自动处理多通道图像或单通道图像b.Various pixel types自动处理多型号位深的图像c.Arbitrarily-shaped region of interest 任意形状的感兴趣区域Øimage tuples in Halcon例如:如果想对一批图像进行滤波处理,你只需要调用一次mean_image 算子对图像数组进行操作,避免多次调用mean_image 。
HALCON手册简体中文版
第一章HALCON恭喜诸位。
您采用了这套在产品研发,研究以及教育方面都有顶尖表现的影像分析软件。
HALCON 可在UNIX,NT/2000/xp 等等平台下作业,它独特的Library 提供了千余个为影像分析作业,数据可视化,除错等等功能所设计的运算符,用户可以利用它的功能以C 及C++等程序语言自行撰写图像处理程序。
此外,HALCON 亦支持Windows NT/2000/XP 下的COM 接口,所以您也可以透过Visual Basic 使用它,使得系统的整合更为容易。
HALCON 的设计使得影像区域,边缘,以及等值线的处理上更方便,优化的算法让这套软件在一般的硬件上也有很好的指令周期。
HALCON 包含了名为HDevelop 的程序设计界面,减少了设计软件所花的时间,还有一个好用的联机帮助,您可以查到关于HALCON 运算符间功能相近的替代者,可能的变化,以及交互的参考。
HALCON 从6.0 版开始提供两个版本,除了标准版外,还有支持平行运算的parallel HALCON,可使用多CPU 的机器,提高指令周期。
以下是HALCON 特点的说明1.1HALCON 强化的opreator library提供有效率又有弹性的图像处理功能,简化了影像程序的设计。
HALCON operator library 有千余个运算符。
所有的HALCON 应用程序(像是HDevelop 和HALCON C++程序)皆是利用这个library 来工作。
这些运算符功能广泛,包含了简单的读取影像,到复杂的像是Kalman 滤波等。
基本上这些运算符各有其单一功能,而非包含了各种运算,因此一个影像分析功能是由好几个运算符组成的,所以其弹性远大于由少数而复杂的运算符组成的分析程序。
特化而复杂的运算符往往只适用于某些工作甚至于影像,应用范围狭窄。
相对于这种窘境,HALCON 运算符却能任意组合来完成工作。
众多的运算符中,有些是以不同的算法来达到相同的功能,例如只需要粗略定位时,可用fast_match 来作最快的运算,需要精确定位时,用best_match,以较多的时间来求得最准确结果。
halcon知识点总结
Halcon知识点总结Halcon是一种强大的机器视觉编程软件,广泛应用于图像处理和机器视觉领域。
它提供了丰富的算法库和工具,使开发人员能够开发出高效、精确的视觉应用程序。
在本文中,我将总结一些Halcon的关键知识点。
1.Halcon基础知识 Halcon是一种面向对象的编程语言,具有强大的图像处理能力。
它支持多种图像格式,并提供了丰富的图像处理函数和算法。
要使用Halcon,首先需要了解其基本语法和函数的使用方法。
2.图像输入与输出在Halcon中,图像可以从文件中读取或通过相机进行采集。
要从文件中读取图像,可以使用read_image函数,该函数接受图像文件的路径作为参数。
要将图像保存到文件中,可以使用write_image函数,并指定保存路径和文件格式。
3.图像预处理在进行图像处理之前,通常需要对图像进行预处理,以提高处理的效果。
Halcon提供了丰富的图像预处理函数,包括图像平滑、增强、滤波等。
常用的预处理函数包括gauss_filter、median_image和enhance等。
4.图像分割与特征提取图像分割是图像处理中的一项重要任务,它将图像分割成具有不同特征的区域。
Halcon提供了多种图像分割算法,例如阈值分割、边缘检测和区域生长等。
完成图像分割后,可以使用特征提取函数获取每个区域的特征,如区域的形状、大小和颜色等。
5.目标定位与匹配目标定位是在图像中找到感兴趣的目标位置。
Halcon提供了多种目标定位算法,包括模板匹配、形状匹配和关键点匹配等。
通过设定合适的模板或特征描述子,可以在图像中准确地定位目标位置。
6.二维码和条形码识别在许多应用中,需要对二维码和条形码进行自动识别。
Halcon提供了方便的函数和工具,用于解码和识别不同类型的二维码和条形码。
通过使用相应的函数,可以实现快速而准确的二维码和条形码识别。
7.三维视觉与立体匹配除了二维视觉外,Halcon还提供了强大的三维视觉功能。
halcon图像采集
halcon图像采集图像采集:Halcon通过imageacquisition interfaces对各种图像采集卡及各种工业相机进行支持。
其中包括:模拟视频信号,数字视频信号Camera Link,数字视频信号IEEE 1394,数字视频信号USB2.0,数字视频信号Gigabit Ethernet等。
Halcon通过统一的接口封装上述不同相机的image acquisition interfaces,从而达到算子统一化。
不同的相机只需更改几个参数就可变更使用。
Halcon图像获取的思路:1、打开设备,获得该设备的句柄。
2、调用采集算子,获取图像。
1、打开设备,获得该设备的句柄。
grab_image (Image, AcqHandle) //(同步采集)完后处理图像,然后再采集图像。
采集图像的速率受处理速度影响。
grab_image_async (Image, AcqHandle,MaxDelay) //(异步采集),一幅画面采集完后相机马上采集下一幅画面,不受处理速度影响。
其中第三个参数为:MaxDelay,表示异步采集时可以允许的最大延时,本次采集命令距上次采集命令的时间不能超出MaxDelay,超出即重新采集。
图像采集其他相关算子:grab_image_start,该算子开始命令相机进行异步采集。
只能与grab_image_async(异步采集)一起使用。
例子:* Select a suitable image acquisition interface nameAcqNameopen_framegrabber(AcqName,1,1,0,0,0,0,'default',-1,'default',-1.0,\'default','default','default',-1,-1,AcqHandle)grab_image(Image1,AcqHandle)//进行同步采集* Start next grabgrab_image_start(AcqHandle,-1.0)//命令相机进行异步图像采集开始* Process Image1 ...* Finish asynchronous grab + start next grabgrab_image_async(Image2,AcqHandle,-1.0)//读取异步采集的图像* Process Image2 ...close_framegrabber(AcqHandle)3、相机参数读写读取相机参数:info_framegrabber( : : Name, Query : Information, ValueList) 写相机参数:set_framegrabber_param( : : AcqHandle, Param, Value : )。
halcon相机采集显示
在VS2005中使用Halcon算子采集和处理图像的步骤在VS2005中使用Halcon算子采集和处理图像的步骤1.使用向导创建基于对话框的应用程序。
2.环境变量设置,这步只要配置一次就可以。
具体可以参加相关文章。
3.添加附加库halconcpp.lib,project->properties->configuration properties->linker->Input->Additional dependecies后面添加。
4.添加头文件和命名空间在***Dlg.h头文件中添加如下的头文件和命名空间:#include"halconcpp.h"using namespace Halcon;5.创建halcon显示窗口5.1定义窗口句柄(在***Dlg.h头文件中添加):HTuple m_HWindowID5.2添加初始化窗口函数(在***Dlg.h头文件中添加):public:void InitHalconWindow();5.3在对话框窗口添加一Picture控件,ID为:IDC_PIC_HWINDOW,用于显示图像。
5.4实例化初始化窗口函数(在***Dlg.cpp文件中添加),如下所示:void C***Dlg::InitHalconWindow(){//定义显示的起点和长宽高HTuple HWindowRow,HWindowColumn,HWindowWidth,HWindowHeight;//定义窗口IDHTuple HWindowID;//定义一个CRect类的对象,用于获取图像框的尺寸和位置CRect Rect;CWnd *pWnd = GetDlgItem(IDC_PIC_HWINDOW);CDC *pDC = pWnd->GetDC();pWnd->GetWindowRect(&Rect);//设置显示窗口的起点和宽高HWindowRow =0;HWindowColumn =0;HWindowWidth = Rect.Width();HWindowHeight = Rect.Height();//设定固定的窗口大小,而不是根据控件大小设定//GetDlgItem(IDC_PIC_HWINDOW)->SetWindowPos(NULL,0,0,322,242, SWP_NOZORDER | SWP_NOMOVE);try{set_window_attr("border_width",0);//获取当前窗口指针HWindowID = (Hlong)pWnd->m_hWnd;set_check("~father");open_window(HWindowRow,HWindowColumn,HWindowWidth,HWi ndowHeight,HWindowID,"visible","",&m_HWindowID);set_check("father");//设置显示模式是margin(边缘)set_draw(m_HWindowID,"margin");}catch (HException&except){TRACE(except.message);}}然后把此函数放到程序的初始化函数中(即放到OnInitDialog()函数中),之后程序运行就可以打开窗口,窗口句柄为m_HWindowID。
vs联合halcon——采集图像(实时采集与单次采集)
vs联合halcon——采集图像(实时采集与单次采集)摘要在对vs进⾏环境配置好以后,就可以开始与halcon联合进⾏实战。
本篇就对图像的采集进⾏总结。
通过构建采集相机GrabImage类的三个⽅法实现图像的采集:open() 打开相机grabimage() 单次采集图像close() 关闭相机,释放内存最后⽤IrisSkin4实现WinForm窗体换⽪肤。
先看⼀下实现的效果:如何实现呢?⼀,创建vs⼯程,创建 GrabImage类(便于调⽤)using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using HalconDotNet;namespace采集图像{public class GrabImage{HTuple hv_AcqHandle; //打开相机窗⼝的引⽤句柄HObject ho_Image;//定义图⽚变量HTuple imageWidth, imageHeight;//定义宽⾼public void open(){try{HOperatorSet.GenEmptyObj(out ho_Image);// 初始化本地图像空间的变量//打开本地相机HOperatorSet.OpenFramegrabber("DirectShow", 1, 1, 0, 0, 0, 0, "default", 8, "rgb",-1, "false", "default", "[0] Integrated Camera", 0, -1, out hv_AcqHandle);//开始采集图像HOperatorSet.GrabImageStart(hv_AcqHandle, -1);}catch (Exception){System.Windows.Forms.MessageBox.Show("打开相机失败!");//报错}}//构造单次采集图像⽅法public void grabimage(HWindowControl HW){//清空窗体halconwindowsHW.HalconWindow.ClearWindow();//采集图像HOperatorSet.GrabImageAsync(out ho_Image, hv_AcqHandle, -1);//转成⿊⽩图像HOperatorSet.Rgb1ToGray(ho_Image, out ho_Image);//图⽚⾃适应窗⼝HOperatorSet.GetImageSize(ho_Image, out imageWidth, out imageHeight);HOperatorSet.SetPart(HW.HalconWindow, 0, 0, imageHeight - 1, imageWidth - 1);//显⽰图像HOperatorSet.DispObj(ho_Image, HW.HalconWindow);//以当前⽇期保存图像到D盘下//HOperatorSet.WriteImage(ho_Image, "png", 0, "D:\\" + DateTime.Now.ToString("yyyy-MM-dd HH-mm-ss")); ho_Image.Dispose();}//关闭相机,释放内存public void close(){ho_Image.Dispose();HOperatorSet.CloseFramegrabber(hv_AcqHandle);}}}⼆,编写winform界⾯三,编写主窗体Form1程序using System;using System.Collections.Generic;using ponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;namespace采集图像{public partial class Form1 : Form{public Form1(){InitializeComponent();}GrabImage grabimg = new GrabImage();//实例化GrabImage类private void Form1_Load(object sender, EventArgs e){skinEngine1.SkinFile = System.Environment.CurrentDirectory+ "\\Skins\\Calmness.ssk";skinEngine1.DisableTag = 8888;//设置不⾃动换肤。
HALCON编程及工程应用 第4章 HALCON图像采集
4.3图像采集助手
➢ 采集助手之“参数”设置:
• grab_timeout:设置采集超时终止 的时间;
• brightness:设置亮度值(-64到64) • contrast:设置对比度值(0到95) • hue:设置色调值(-2000到2000) • saturation:设置饱和度(0到100) • sharpness:设置锐度值(1到7) • gama:设置gama值(100到300) • white_balance:设置白平衡值
HALCON编程基础与工程应用
4.2图像采集算子
同步采集
同步采集是采集到图片之后才返回继续执行,简单来说就是上一张图像处 理结束以后才会再次采集图像,采集图像的速率受处理速度影响。
主要算子 grab_image:读取同步采集的图像
异步采集
异步采集是一幅图像采集完成后相机马上采集下一幅图像,即在上一副图像还在处理 的时候就开始下一张图像的采集。
主要算子 grab_image_start:异步采集开始
grab_image_async:读取异步采集的图像
HALCON编程基础与工程应用
4.3图像采集助手
使用采集助手步骤
➢ 打开采集助手:点击“菜单栏”中的“助手”,选中“打开新的Image
Acquisition”。
HALCON编程基础与工程应用
远心镜头
远心镜头(Telecentric),主 要是为纠正传统工业镜头视差 而设计,它可以在一定的物距 范围内,使得到的图像放大倍 率不会变化。
HALCON编程基础与工程应用
4.1图像采集硬件
远心镜头根据原理分为:
➢ 物方远心光路:将孔径光阑放置在
光学系统的像方焦平面上,物方主光线 平行于光轴主光线的会聚中心位于物方 无限远。其作用为:可以消除物方由于 调焦不准确带来的读数误差。
教学课件:《HALCON编程及工程应用》刘国华
HALCON编程基础与工程应用
1.1 机器视觉
1.1.2 机器视觉关键技术与发展
HDevelop编程方式具有的优点是: (1)很好的支持所有HALCON 算子; (2)方便检查可视数据; (3)方便选择、调试和编辑参数; (4)方便技术支持。
HALCON编程基础与工程应用
1.2 HALCON介绍
2.标准的开发流程
HALCON编程基础与工程应用
1.2 HALCON介绍
3.交互式并行编程环境 HALCON提供支持多CPU处理器的交互式并行编程环境Paralell Develop,
(3)HDevelop灰度 直方图 从菜单栏>可视化菜 单>灰度直方图,打 开灰度直方图功能窗 口,进行设置,如图 2-17所示。
HALCON编程基础与工程应用
图2-17 灰度直方图
2. HDevelop窗口介绍
(4)HDevelop特征 直方图 从菜单栏>可视化菜 单>特征直方图,打 开特征直方图功能窗 口,进行设置和编辑, 并可根据编辑的直观 结果,插入程序代码。 如图2-18所示。
第1章 机器视觉和HALCON机器视觉软件
◆ 1.1机器视觉 ◆ 1.2HALCON介绍
HALCON编程基础与工程应用
1.1 机器视觉
1.1.1 机器视觉简介
机器视觉(Machine vision)是一项综合技术,包括图像 处理、机械工程技术、电气控制技术、光源照明、光学成像、 传感器、模拟与数字视频技术、计算机软硬件技术(图像增强 和分析算法、图像采集卡、I/O卡等)。一个典型的机器视觉 应用系统包括图像捕捉、光源系统、图像数字化模块、数字图 像处理模块、智能判断决策模块和机械控制执行模块。
Halcon80_图像采集接口程序员手册
Halcon80_图像采集接口程序员手册_ImageAcquisisionInterfaceAbout This Manual该手册描述了集成第三方图像采集硬件(采集卡和数字相机)到HALCON系统中所需要的基本的技术。
用到的人:The manual is written for the expert HALCON user who wants to集成新的采集设备.读者要求:需要熟悉:the standard HALCON system.C programming skills.使用的图像采集设备的API的详细的知识。
如果你是对HALCON图像采集接口的基础第一次感兴趣(从用户观点), 请参考the Solution Guide II-A.手册分成以下部分:•IntroductionThis chapter explains the basics of image acquisition and introduces the HALCON image acquisi- tion interface and the underlying concepts.•Data StructuresIn this chapter, the basic data structures of the image acquis ition interface are described.•Interface RoutinesThis chapter explains all the routines you have to implement inside your acquisition interface.•Generating an Acquisition Interface Library怎样生成a dynamic object 封装你的采集接口。
• Changes between versions 2 and 3 of the HALCON image acquistion interface描述了不同between the versions 2 and 3 of the HALCON图像采集接口• Changes between versions 1 and 2 of the HALCON image acquistion interfaceThis appendix describes the differences between the versions 1 and 2 of the HALCON image acquisition interface (formerly known as HALCON frame grabber integration interface).•HALCON Error Codes附录描述了所有的错误代码which you may use for 采集接口的编程中。
halcon引擎编程流程
halcon引擎编程流程Halcon引擎编程流程Halcon引擎是一种用于机器视觉应用开发的强大工具,它可以帮助开发者快速构建高效准确的视觉系统。
本文将介绍Halcon引擎的编程流程,帮助读者了解如何使用Halcon引擎进行开发。
一、引擎初始化在使用Halcon引擎之前,首先需要进行引擎的初始化。
这一步骤包括加载引擎库文件、创建引擎实例等操作。
通过调用相应的函数,我们可以完成引擎的初始化工作。
二、图像采集和预处理在进行图像处理之前,我们需要先采集图像并进行预处理。
Halcon 引擎提供了一系列的函数来实现图像采集和预处理的功能。
我们可以使用相机接口函数来获取实时图像数据,并使用图像处理函数对图像进行一些基本的预处理操作,例如灰度化、平滑、二值化等。
三、特征提取和匹配在进行目标检测和识别时,我们需要对图像进行特征提取和匹配。
Halcon引擎提供了一些常用的特征提取和匹配算法,例如边缘检测、形状匹配、模板匹配等。
通过调用这些函数,我们可以提取图像中的关键特征,并与预先设定的模板或样本进行匹配,从而实现目标的检测和识别。
四、图像分割和分析除了目标检测和识别外,Halcon引擎还可以进行图像分割和分析。
图像分割是将图像分成若干个区域的过程,而图像分析则是对这些区域进行特征提取和分析。
Halcon引擎提供了一些常用的图像分割和分析算法,例如区域生长、边缘跟踪、形状分析等。
通过调用这些函数,我们可以将图像分割成具有不同特征的区域,并对这些区域进行进一步的分析和处理。
五、结果显示和输出在完成图像处理和分析之后,我们需要将结果显示和输出。
Halcon 引擎提供了一些函数来实现结果的显示和输出,例如图像显示、文本输出、图像保存等。
通过调用这些函数,我们可以将处理结果以图像或文本的形式输出,以便后续的应用。
六、引擎释放在完成所有的图像处理和分析之后,我们需要释放Halcon引擎的资源。
这一步骤包括释放引擎实例、关闭相机等操作。
halcon引擎编程流程
halcon引擎编程流程Halcon引擎编程流程引擎编程是指使用Halcon引擎进行图像处理和机器视觉应用开发的过程。
Halcon引擎是一种功能强大的工具,可以帮助开发者快速实现各种视觉任务。
本文将介绍Halcon引擎编程的基本流程,帮助读者了解如何使用Halcon引擎进行图像处理和机器视觉应用开发。
一、准备工作在开始使用Halcon引擎进行编程之前,我们需要进行一些准备工作。
首先,我们需要安装Halcon引擎及其开发环境。
安装完成后,我们需要配置开发环境,包括设置环境变量、导入库文件等。
然后,我们需要准备图像数据,这些数据可以是从摄像头、图像文件或其他来源获取的。
最后,我们需要明确自己的编程目标,确定要实现的功能和任务。
二、创建项目在开始编写代码之前,我们需要创建一个新的项目。
在Halcon引擎中,项目是一个组织代码和资源的容器。
创建项目时,我们需要指定项目名称和保存路径。
创建项目后,我们可以在项目中添加代码文件、图像文件和其他资源。
三、编写代码在Halcon引擎中,我们使用Halcon语言进行编程。
Halcon语言是一种专门为图像处理和机器视觉应用设计的语言,具有丰富的函数库和强大的功能。
编写代码时,我们可以使用Halcon提供的函数来实现各种图像处理任务,如图像滤波、边缘检测、图像匹配等。
我们可以根据自己的需求选择合适的函数并传递相应的参数。
此外,我们还可以使用条件语句、循环语句和其他控制结构来实现更复杂的逻辑。
四、调试和测试在编写完代码后,我们需要对代码进行调试和测试。
调试是指检查代码中的错误并进行修正的过程,可以通过打印调试信息、单步执行等方式进行。
测试是指验证代码是否能够正常运行并达到预期的结果。
我们可以使用一些测试数据对代码进行测试,并根据测试结果进行调整和优化。
五、部署和发布当代码调试和测试通过后,我们可以将代码部署到目标环境中。
部署是指将代码和相关资源打包并安装到目标环境中的过程。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
➢ 数值孔径(NA):数值孔径直接决定了镜头的分辨率,数值孔径
越大,分辨率越高,否则反之。其计算公式为: NA n sin a 2
➢ 视场(FOV):镜头实际拍到的区域的范围。其计算公式为:
FOV WD CCD尺寸 f
➢ 光学放大倍数(M):即芯片尺寸除以视场。即:
第4章 HALCON图像采集
4.1图像采集硬件
4.1.1相机 4.1.2镜头 4.1.3光源
4.2图像采集算子
4.2.1工业相机连接 4.2.2同步采集 4.2.3异步采集
4.3图像采集助手
HALCON编程基础与工程应用
4.1图像采集硬件
4.1.1工业相机 工业相机的主要参数
➢ 按照芯片类型可以分为CCD相机、CMOS相机 ➢ 按照传感器的结构特性可以分为线阵相机、面阵相机 ➢ 按照扫描方式可以分为隔行扫描相机、逐行扫描相机 ➢ 按照分辨率大小可以分为普通分辨率相机、高分辨率相机 ➢ 按照输出信号方式可以分为模拟相机、数字相机 ➢ 按照输出色彩可以分为单色(黑白)相机、彩色相机 ➢ 按照输出信号速度可以分为普通速度相机、高速相机 ➢ 按照响应频率范围可以分为可见光(普通)相机、红外相机、紫外相机等
4.1图像采集硬件
4.1.2镜头
镜头的相关参数
➢ 焦距(f):镜头到焦点之间的距离,常见的工业镜头焦距有:5mm、
8mm、12mm、25mm、35mm、50mm、75mm等,其计算公式为:
f
CCD宽WD 物宽
CCD高 WD 物高
➢
光圈系数(相对孔径)相:对孔径
光圈直径 焦距f
D圈系数为1.4、2、2.8、4、5.6、8、11、16、22等几个等
➢ 高影像分辨率 ➢ 近乎零失真度 ➢ 无透视误差 ➢ 远心设计与超宽景深
远心镜头的选择:
其靶面的规格大于或等于相机的靶面即可,当检查物体遇到以下6中情况时, 最好选用远心镜头: ➢ 当需要检测有厚度的物体时(厚度>1/10 FOV直径); ➢ 需要检测不在同一平面的物体时; ➢ 当不清楚物体到镜头的距离究竟是多少时; ➢ 当需要检测带孔径、三维的物体时; ➢ 当需要低畸变、图像效果亮度几乎完全一致时; ➢ 当缺陷只在同一方向平行照明下才能检测到时。
工业相机的主要输出接口
USB接口 1394a/1394b接口 Gige接口 Camera Link接口
HALCON编程基础与工程应用
4.1图像采集硬件
工业相机的选型
• 选择工业相机的分辨率
分辨率=视野范围/理论精度
• 选择工业相机的芯片
CCD/CMOS
• 选择彩色相机还是黑白相机
要处理的与图像颜色有关,采用彩色相机,否则建议黑白相机
级。
➢ 对应最大CCD尺寸:镜头成像直径可覆盖的最大CCD芯片尺寸。
➢ 接口:镜头与相机的连接方式。常用的包括C、CS、F、V、T2等。
➢ 像差(比如畸变、场曲等):畸变会影像测量结果,特别是在
精密测量中,必通过软件的方法进行标定和补偿。
HALCON编程基础与工程应用
4.1图像采集硬件
➢ 分辨率(Resolution):指在成像平面上1毫米间距内能分辨开
4.1图像采集硬件
典型的工业相机供应商
➢ costar工业相机 ➢ Lumenera数字工业相机 ➢ Sony(日本) ➢ 东芝泰力(日本) ➢ Dalsa(加拿大) ➢ BASLER(德国) ➢ UNIQ(美国) ➢ Redlake(美国) ➢ Atmel(美国) ➢ Olynpus(日本)
HALCON编程基础与工程应用
HALCON编程基础与工程应用
4.1图像采集硬件
工业相机的主要参数
分辨率(Resolution) 像素深度(Pixel Depth) 曝光方式(Exposure)和快门速度(Shutter) 像元尺寸(Pixel Size) 光谱响应特性(Spectral Range) 工业相机噪声 信噪比(SNR)
M CCD FOV
➢ 工作距离(WD):即物距,镜头最下端机械面到被测物体的距离。
HALCON编程基础与工程应用
4.1图像采集硬件
➢ 后背焦(Flange Distance):即后焦距,指相机接口平面到芯片的
距离。
➢ 景深(DOF):表示满足图像清晰要求的最远位置与最近位置的差值。
L1
f
FL2 2 FL
➢ 像方远心光路:将孔径光阑放置在
光学系统的物方焦平面上,像方主光线 平行于光轴主光线的会聚中心位于像方 无限远。其作用为:可以消除像方调焦 不准引入的测量误差。
➢ 两侧远心光路:综合了物方/像方远
心的双重作用,主要用于视觉测量检测 领域
HALCON编程基础与工程应用
4.1图像采集硬件
远心镜头技术参数:
;L2
f
FL2 2 FL
;L
L1
L2
f
2f 2FL2 4 F 2 2 L2
HALCON编程基础与工程应用
4.1图像采集硬件
镜头的分类
按镜头接口分类:C接口、CS接口、F接口等 按焦距类型分类:定焦镜头和可变焦距镜头 按焦距、视场角大小分类:标准镜头长、焦距镜头、广角镜头、鱼
眼镜头、微距镜头
按光圈分类:固定光圈式、手动光圈式、自动光圈式等 按镜头伸缩调整方式分类:电动伸缩镜头、手动伸缩镜头等
• 工业相机的帧率
选择相机的帧率一定要大于或等于物体运动速度
• 选择线阵相机还是面阵相机 • 相机和图像采集卡的匹配
包括:视频信号的匹配;分辨率的匹配;特殊功能的匹配;接口的匹配
• 工业相机的CCD/CMOS靶面
选择CCD/CMOS尺寸时,要结合镜头的焦距、视场角一起选择
HALCON编程基础与工程应用
HALCON编程基础与工程应用
4.1图像采集硬件
工业镜头的选择
远心镜头
远心镜头(Telecentric),主 要是为纠正传统工业镜头视差 而设计,它可以在一定的物距 范围内,使得到的图像放大倍 率不会变化。
HALCON编程基础与工程应用
4.1图像采集硬件
远心镜头根据原理分为:
➢ 物方远心光路:将孔径光阑放置在
光学系统的像方焦平面上,物方主光线 平行于光轴主光线的会聚中心位于物方 无限远。其作用为:可以消除物方由于 调焦不准确带来的读数误差。