当前位置:首页 » 生产设备 » halcon怎么枚举设备

halcon怎么枚举设备

发布时间: 2021-02-09 01:22:36

① 怎样使用HALCON/.NET类

在HALCON/.NET,我们可以用过一个类的实例
(instances of class)来调用HALCON算子。在HalconDotNet引用里,也就是动态链接库里包许多实例化一个类方法,这些
方法可能是重载的,静态的HALCON算子我们可以直接通过类名来调用(这些方法包括HALCON里所有的算子),而非静态的方法必须要通过实例化一个类
后才可以使用,通常HALCON/.NET封装了一个类的实例化方法以及类方法。

例如在C++中,可以使用以下两种方法:

1. C++(算子模式)

通过代码导出,以C++为例,默认导出为算子型的语法结构,而非面向对象的;在此模式下,全部函数声明为全局类型,数据类型只需要用Hobject、HTuple两类类型进行声明;

2. C++(面向对象)

可以以面向对象的方式重写代码,也即利用类及类的成员函数;在这种模式下,控制变量的类型仍未HTuple,而图形数据可以由多种类型,如HImage等;

HALCON手册建议使用者使用第二种方法。

例如我们使用第二种方法实现抓取图像序列(imagesequence)里第一张图像,并且将他显示在HWindowControl窗口中。代码是:

[cpp] view plain
private HWindow Window;
private HFramegrabber Framegrabber;
private HImage Img;
Window= WindowControl.HalconWindow;
Framegrabber= new HFramegrabber("File", 1, 1, 0, 0, 0, 0, "default",
-1,"default", -1, "default",
"board/board.seq","default", 1, -1);
Img= Framegrabber.GrabImage();
Img.DispObj(Window);

GrabImage算子是通过HFramegrabber的实例来调用的。如果你是一个有经验的HALCON使用者,也许你已经看出来HFramegrabber的构造函数调用了OpenFramegraber算子。

但是对于新手来说,可能刚刚接触Halcon,对于Halcon算子还处于熟悉阶段,从Hdevelop中直接到出来的代码也是直接使用静态类。那么建议先使用第一种方法,你只需要明白通过HOperatorSet这个类你可以调用任何一个HALCON算子。

下面我们来看一下到底怎么样调用一个算子。以GrabImage算子为例:

[cpp] view plain
static void HOperatorSet.GrabImage (out HObject image, HTuple acqHandle)//静态方法直接调用算子,包含的参数和halcon算子参数完全相同
void HImage.GrabImage (HFramegrabber acqHandle)//类中封装的类方法,要先实例化类后才可以使用
HImage HFramegrabber.GrabImage ()//重载的方法
image(output_object) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . image ; HImage
acqHandle(input_control) . . . . . . . . . . . . . . . . . . . . . . . . . .framegrabber ; HFramegrabber / HTuple

[cpp] view plain

我们可以看出,算子可以通过三个类进行调
用:HOperatorSet, HImage,和HFramegrabber。其中第一种通过HOperatorSet调用主要是用在导出的
HDevelop中(如果你导出程序的话就会看到),也是建议新手使用的方法。而熟悉了之后一般我们在写程序时建议使用另外两种方式,就像下面这样进行调
用:

[cpp] view plain
HImage Image1;
HImage Image4 = newHImage();
HFramegrabberFramegrabber =
newHFramegrabber("File", 1, 1, 0, 0, 0, 0, "default", -1,
"default",-1, "default", "board/board.seq", "default", -1,-1);
Image1 =Framegrabber.GrabImage();
HImage Image3 = null;

需要注意的是通过
HFramegrabber调用返回方法的值,而通过HImage调用没有返回值而是调用的类实例被修改,也就是HImage对象被修改。通常,调用类实
例不会被一个算子所修改,除了被上面所看到的“类构造器”(constructor-like)算子调用。

一些算子像CountSeconds可以当做类方法来使用,例如,你可以直接通过类名调用它们而不用生成一个实例:

[cpp] view plain
double S1, S2;
S1 =HSystem.CountSeconds();

这是因为这些算子声明前面都有static关键字:

[cpp] view plain
static void HOperatorSet.CountSeconds (outHTupleseconds)
static double HSystem.CountSeconds()<span style="font-family:'Times New Roman'; font-size:14px; line-height:21px"> </span>

下面我们看一下类的生命周期:从声明(Declaration)到终结(Finalization)

下面的声明仅仅声明了一个类HImage的变量,而没有指向任何的对象:

[cpp] view plain
HImage Image1;

在这个语句中,你不能只使用变量直接去调用算子;有些语言里面甚至不能够将它用做一个输出参数(例如VB 2005)。只有先给它一个图像对象,例如:

[cpp] view plain
Image1 =Framegrabber.GrabImage();

你也可以在声明的时候初始化一个变量:

[cpp] view plain
HImage Image2 =Framegrabber.GrabImage();

[cpp] view plain
<span style="font-family:Arial,Helvetica,sans-serif"></span><pre name="code" class="cpp">HImage Image3 = null;</pre>

你可以通过一个IsInitialized方法来检验一个类实例是否被初始化。

但是使用构造函数(Constructors)后的对象就可以了:

下面的式子是利用类HImage空的构造函数来初始化一个类变量

[cpp] view plain
HImage Image4 = new HImage(); <span style="font-family:'Times New Roman'; font-size:14px"> </span>

类实例可以用来调用“类似构造函数”算子像GrabImage,用抓住的一张图片初始化类变量:

[cpp] view plain
Image4.GrabImage(Framegrabber);

除了空的构造器,大部分HALCON/.NET类提供一个或者更多的构造器来初始化基于HALCON算子的对象。例如,HImage提供了一个构造器:

[cpp] view plain
HImage Image5 = newHImage("fuse");<span style="font-family:'Times New Roman'; font-size:14px; line-height:21px"> </span>

reference manual和右键go to definition是很好的参考资料。

关于Finalizers

在.NET中程序员不需要考虑内存管理方面的事情,因为它有自动垃圾回收回收哪些不再使用的对象。HALCON/.NET完全遵循这种规则通过提供所有类的回收器,所以不需要管理资源,例如,一个图像采集设备的连接会被自动正确的删除。

对于大部分类,回收器自动调用合适的算子像CloseFramegrabber来释放资源。调用的算子在一个参考手册页中列了出来(例如HFramegrabber)。这个算子不可以通过类来调用,在相应的参考手册条目中可以看到:

[cpp] view plain
static void HOperatorSet.CloseFramegrabber (HTupleacqHandle)

也就是说你没有必要调用这样一个算子,如果你想用别的参数从新进行连接,它会自动执行。

注意当用HFramegrabber一般的类时不能使用HOperatorSet来关闭或者清除算子。

但是对于像图像这种数据变量,它们包含的只是引用,对于他们指向的内存垃圾回收机制也许不会直接清除,这些就需要手动清除:

有一种方法是在处理完事件后直接调用GC清除:

[cpp] view plain
private void Timer_Tick(object sender, System.EventArgs e)
{
Action();
GC.Collect();
GC.WaitForPendingFinalizers();
}

另一种方法是直接调用自带的销毁方法:

[cpp] view plain
HImage Image = new HImage("fuse");
...
Image.Dispose();

② halcon是什么,能干什么,学这个需要什么,只是电脑么

HALCON是德国MVtec公司开发的一套完善的标准的机器视觉算法包,拥有应用广泛的机器视觉集成开发环境
维视图像开发定制软件
维视图像开发定制软件
。它节约了产品成本,缩短了软件开发周期——HALCON灵活的架构便于机器视觉,医学图像和图像分析应用的快速开发。在欧洲以及日本的工业界已经是公认具有最佳效能的Machine Vision软件。[1]
HALCON源自学术界,它有别于市面一般的商用软件包。事实上,这是一套image processing library,由一千多个各自独立的函数,以及底层的数据管理核心构成。其中包含了各类滤波,色彩以及几何,数学转换,型态学计算分析,校正,分类辨识,形状搜寻等等基本的几何以及影像计算功能,由于这些功能大多并非针对特定工作设计的,因此只要用得到图像处理的地方,就可以用HALCON强大的计算 分析能力来完成工作。应用范围几乎没有限制,涵盖医学,遥感探测,监控,到工业上的各类自动化检测。
HALCON支持Windows,Linux和Mac OS X操作环境,它保证了投资的有效性。整个函数库可以用C,C++,C#,Visual basic和Delphi等多种普通编程语言访问。HALCON为大量的图像获取设备提供接口,保证了硬件的独立性。它为百余种工业相机和图像采集卡提供接口,包括GenlCam,GigE和IIDC 1394。

③ 想学习halcon需要什么基础

数字图抄像处理的基本概念和图像变换袭 图像增强、图像恢复与重建、图像编码与压缩 图像分割、二值图像处理与形状分析、纹理分析、模板匹配与模式识别 你看一下武汉大学的贾永红老师的《数字图像处理》 里面把图像处理的基本内容都讲到了 另外你自己可以了解一下常用的图像处理。
图像处理(image processing),用计算机对图像进行分析,以达到所需结果的技术。又称影像处理。图像处理一般指数字图像处理。数字图像是指用工业相机、摄像机、扫描仪等设备经过拍摄得到的一个大的二维数组,该数组的元素称为像素,其值称为灰度值。图像处理技术的一般包括图像压缩,增强和复原,匹配、描述和识别3个部分。 常见的系统有康耐视系统、图智能系统等,目前是正在逐渐兴起的技术。

④ halcon 图像采集时需要哪些系统组件

Halcon图像获取与相关参数

图像获取程序例1.
1.set_system( : : SystemParameter, Value : )
设置系统参数
2.open_framegrabber ( : : Name, HorizontalResolution,VerticalResolution, ImageWidth, ImageHeight, StartRow, StartColumn,Field, BitsPerChannel, ColorSpace, Generic, ExternalTrigger,CameraType, Device, Port, LineIn : AcqHandle )
打开并配置图像采集设备
输入控制:
Name:图像采集设备的名称
HorizontalResolution和VerticalResolution:预期的图像采集接口的水平分辨率和垂直分辨率
ImageWidth和ImageHeight:指预期图像的宽度部分和高度部分。
StartRow和StartColumn:指显示预期图像的开始坐标
Field:预期图像是一半的图像或者是完整图像
BitsPerChannel:每像素比特数和图像通道
ColorSpace:获取图像的输出形式{gray、raw、rgb、yuv、default}
Generic:通用参数与设备细节部分的具体意义。

⑤ HALCON机器视觉软件的HALCON简介

它节约了产品成本,缩短了软件开发周期——HALCON灵活的架构便于机器视觉,医学图像和图像分析应用的快速开发。在欧洲以及日本的工业界已经是公认具有最佳效能的Machine Vision软件。
HALCON源自学术界,它有别于市面一般的商用软件包。事实上,这是一套image processing library,由一千多个各自独立的函数,以及底层的数据管理核心构成。其中包含了各类滤波,色彩以及几何,数学转换,形态学计算分析,校正,分类辨识,形状搜寻等等基本的几何以及影像计算功能,由于这些功能大多并非针对特定工作设计的,因此只要用得到图像处理的地方,就可以用HALCON强大的计算 分析能力来完成工作。应用范围几乎没有限制,涵盖医学,遥感探测,监控,到工业上的各类自动化检测。
HALCON支持Windows,Linux和Mac OS X操作环境,它保证了投资的有效性。整个函数库可以用C,C++,C#,Visual basic和Delphi等多种普通编程语言访问。HALCON为大量的图像获取设备提供接口,保证了硬件的独立性。它为百余种工业相机和图像采集卡提供接口,包括GenlCam,GigE和IIDC 1394。

⑥ HALCON机器视觉软件的HALCON选择

近年来,由于Machine Vision技术的发展,这种可以取代人眼,对重复工作不会疲劳,精度高且稳定的特质,促成了高科技业,例如电子业产能的大幅提升。而MVTec公司更是不断的与学术界合作,并且将最新的学术研究成果纳入其中,不但使自己的技术处于业界领导地位,同时也将machine vision技术推向更高的境界。让您选择HALCON出于以下3点理由:
1.为了让使用者能在最短的时间里开发出视觉系统,HALCON包含了一套交互式的程序设计界面HDevelop,可在其中以HALCON程序代码直接撰写,修 改,执行程序,并且可以查看计算过程中的所有变量,设计完成后,可以直接输出C、C++、VB、C#、vb等程序代码,套入您的程序中。 HDevelop同时和数百个范例程序链接,除了个别计算功能的说明,您也可以随时依据不同的类别找到应用的范例,方便参考。此外,以问题为导向的手册, 可以让您找到最适切的使用说明以及作业观念。
2.HALCON不限制取像设备,可以自行挑选合适的设备。原厂已提供了60 余种相机的驱动链接,即使是尚未支持的相机,除了可以透过指标(pointer)轻易的抓取影像,还可以利用HALOCN开放性的架构,自行撰写DLL文件和系统连接。
3.使用HALOCN,在设计人机接口时没有特别的限制,也不必特别的可视化组件,您可以完全使用开发环境下的程序语言,例如visual studio、.NET、Mono等等,架构自己的接口,end user看不到您的开发工具,而且在执行作业的机器上,只需要很小的资源套件。

⑦ 怎么向halcon中发送串口数据

关于串口设备,复最好联制系厂家询问是否提供API接口。

关于API接口一般是一个可供调用的DLL文件。

如果有可以直接在C#中引用,作为类库来操作设备。

具体调用方式需要询问厂家或参阅api的文档说明。

不提供软件接口的设备是无法进行开发的。

我大概搜了下这个设备,设备是提供配套软件的,那么这款设备是有相关通讯接口类库的,也就是可以用C#进行开发。
如果找不到API文档,
请尝试用串口调试工具,跟踪配套软件的每一步操作,获取串口通讯报文,用C#模拟操作报文自己封装通讯类后进行开发。

⑧ 学习halcon需要学习哪些图像处理知识

数字图像处理的基本概念和图像变换 图像增强、图像恢复与重建、图像编码与压缩 图像分割专、二值图像处理与属形状分析、纹理分析、模板匹配与模式识别 你看一下武汉大学的贾永红老师的《数字图像处理》 里面把图像处理的基本内容都讲到了 另外你自己可以了解一下常用的图像处理。
图像处理(image processing),用计算机对图像进行分析,以达到所需结果的技术。又称影像处理。图像处理一般指数字图像处理。数字图像是指用工业相机、摄像机、扫描仪等设备经过拍摄得到的一个大的二维数组,该数组的元素称为像素,其值称为灰度值。图像处理技术的一般包括图像压缩,增强和复原,匹配、描述和识别3个部分。 常见的系统有康耐视系统、图智能系统等,目前是正在逐渐兴起的技术。

热点内容
线切割怎么导图 发布:2021-03-15 14:26:06 浏览:709
1台皮秒机器多少钱 发布:2021-03-15 14:25:49 浏览:623
焊接法兰如何根据口径配螺栓 发布:2021-03-15 14:24:39 浏览:883
印章雕刻机小型多少钱 发布:2021-03-15 14:22:33 浏览:395
切割机三五零木工貝片多少钱 发布:2021-03-15 14:22:30 浏览:432
加工盗砖片什么榉好 发布:2021-03-15 14:16:57 浏览:320
北洋机器局制造的银元什么样 发布:2021-03-15 14:16:52 浏览:662
未来小七机器人怎么更新 发布:2021-03-15 14:16:33 浏览:622
rexroth加工中心乱刀怎么自动调整 发布:2021-03-15 14:15:05 浏览:450
机械键盘的键帽怎么选 发布:2021-03-15 14:15:02 浏览:506