halcon12版程序无法启动oxcooooo7b,电脑是64位win7,求大神指点

halcon12版程序无法启动oxcooooo7b,电脑是64位win7,求大神指点,第1张

电脑启动时出现蓝屏oxcooooo7b,蓝屏可以由很多原因引起,解决思路是先软件后硬件,即先检查软件问题,再检查硬件问题。

1、如果蓝屏前安装了软件或驱动,进安全模式下,把新安装的软件及驱动卸载或删除后,再开机试下。

2、如果删除后仍然蓝屏,或根本进不了安全模式,则重新安装 *** 作系统试下。

3、重装系统后仍然蓝屏,则考虑硬件问题。首先将电脑里面的灰尘彻底清理一下,将内存、显卡、PCI插槽上的设备拆下,用橡皮探试一下。因为灰尘引起温度过高、接触不良等也会造成蓝屏;同时将CPU、显卡等风扇拆下,更换新的散热硅胶;另外检查下所有硬件的温度是否正常。

4、如果清洁电脑后还是不行,则用替换法检查电脑硬件,如果没有可替换的硬件或不熟悉电脑,建议找专业维修人员处理。

5、硬件替换按以下顺序进行排查:内存、硬盘、显卡、主板、电源、其它硬件、CPU。

6、采用替换法时最好拔掉电脑上所有连接线及开机不需要用到的硬件,只保留电源、主板、CPU、内存、显卡、硬盘、显示器。

7、排查时注意检查硬件上面是否有焦味,硬件上的电容是否有鼓包现象。

提示:替换法检查硬件问题多用于有多余硬件可替换、故障点不好直接判断的情况下,需要对电脑硬件有一定了解,如果不熟悉硬件,不建议用替换法检查硬件故障。

给大家带来一篇halcon18安装教程(血泪安装史),令人震惊的是,网上居然没有一个完整的,而且全都是在胡扯,最后无奈只能自己写了个halcon18安装教程,文章的结尾会附上图文教程方便自己和其他用户使用

特别注意:如果你的版本不一致,那么肯定无法安装,所以可以根据本人提供的安装包和教程一步一步来!

1打开安装包,解压缩并运行安装,点击Next下一步

2阅读软件协议,将下拉滑到最下面,勾选我接受协议

3将检查更新的勾选去掉

4根据自己系统位数自行选择

5选择需要安装的组件,默认全部勾选

6直接点击Next下一步

7自行选择是否安装其他驱动程序

8选择文档语言,默认选择第一项英文

9选择软件安装位置,点击Browser可自行更换安装路径

10正在安装中,请耐心等待一会

11需要选择许可证文件路径,这里先选择“Do not install a license file”,稍后再进行破解激活

12安装完成,将运行软件的勾选去掉,点击Finish退出软件安装向导

13先不要运行软件,将破解补丁复制到软件安装目录下替换

14安装破解完成,运行软件即可免费使用了

在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 plaincopy

private HWindow Window;

private HFramegrabber Framegrabber;

private HImage Img;

Window= WindowControlHalconWindow;

Framegrabber= new HFramegrabber("File", 1, 1, 0, 0, 0, 0, "default",

-1,"default", -1, "default",

"board/boardseq","default", 1, -1);

Img= FramegrabberGrabImage();

ImgDispObj(Window);

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

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

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

[cpp] view plaincopy

static void HOperatorSetGrabImage (out HObject image, HTuple acqHandle)//静态方法直接调用算子,包含的参数和halcon算子参数完全相同

void HImageGrabImage (HFramegrabber acqHandle)//类中封装的类方法,要先实例化类后才可以使用

HImage HFramegrabberGrabImage ()//重载的方法

image(output_object) image ; HImage

acqHandle(input_control) framegrabber ; HFramegrabber / HTuple

[cpp] view plaincopy

我们可以看出,算子可以通过三个类进行调

用:HOperatorSet, HImage,和HFramegrabber。其中第一种通过HOperatorSet调用主要是用在导出的

HDevelop中(如果你导出程序的话就会看到),也是建议新手使用的方法。而熟悉了之后一般我们在写程序时建议使用另外两种方式,就像下面这样进行调

用:

[cpp] view plaincopy

HImage Image1;

HImage Image4 = newHImage();

HFramegrabberFramegrabber =

newHFramegrabber("File", 1, 1, 0, 0, 0, 0, "default", -1,

"default",-1, "default", "board/boardseq", "default", -1,-1);

Image1 =FramegrabberGrabImage();

HImage Image3 = null;

需要注意的是通过

HFramegrabber调用返回方法的值,而通过HImage调用没有返回值而是调用的类实例被修改,也就是HImage对象被修改。通常,调用类实

例不会被一个算子所修改,除了被上面所看到的“类构造器”(constructor-like)算子调用。

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

[cpp] view plaincopy

double S1, S2;

S1 =HSystemCountSeconds();

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

[cpp] view plaincopy

static void HOperatorSetCountSeconds (outHTupleseconds)

static double HSystemCountSeconds()<span style="font-family:'Times New Roman'; font-size:14px; line-height:21px"> </span>

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

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

[cpp] view plaincopy

HImage Image1;

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

[cpp] view plaincopy

Image1 =FramegrabberGrabImage();

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

[cpp] view plaincopy

HImage Image2 =FramegrabberGrabImage();

[cpp] view plaincopy

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

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

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

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

[cpp] view plaincopy

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

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

[cpp] view plaincopy

Image4GrabImage(Framegrabber);

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

[cpp] view plaincopy

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 plaincopy

static void HOperatorSetCloseFramegrabber (HTupleacqHandle)

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

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

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

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

[cpp] view plaincopy

private void Timer_Tick(object sender, SystemEventArgs e)

{

Action();

GCCollect();

GCWaitForPendingFinalizers();

}

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

[cpp] view plaincopy

HImage Image = new HImage("fuse");

ImageDispose();

用户误 *** 作不小心将程序安装目录中的动态链接库DLL文件删除,导致程序启动时无法找到必要的文件而报错(这种情况并不是普遍存在的,但也是原因之一)。

2、电脑感染木马病毒,虽然如今大多数杀毒软件已经趋于人性化,一旦发现某些木马病毒绑定系统程序,还是有不少杀毒软件采用一刀切的方式,直接将这些被恶意绑架的系统程序删除(其中就可能包含DLL动态链接库文件),导致系统或应用程序缺少了必要的DLL动态链接库,从而出现“无法定位程序输入点 于动态链接库上”的问题的。

3、在软件或游戏在线更新时,本该被正常写入或覆盖的DLL动态链接库文件因为意外的断电、重启、写入错误等原因没有下载更新成功,导致软件或游戏在运行过程中缺少必要的DLL动态链接库文件而报错。

ctrl+E   打开浏览例程

ctrl+F    查找

F1        查看帮助文档

F2        重置程序

F3        取消注释

F4        注释

F5        运行

F6        单步运行

F7        单步进入函数

F8        单步退出函数

draw_    表示界面互动的算子,需要人去画区域

gen_      表示生成类的算子,比如生成圆形、矩形等

get_       获取某些属性的算子

tuple_    代表与数组有关的算子

select_   代表筛选有关的算子

带有 contour表示轮廓xid有关的算子

带有 gray表示会读有关的算子

        halcon中算子主要分为两类,参数运算类,对象运算类;对象包括区域,轮廓xid、图像等。参数运算类一般都是数组等,一般输入输出都为数组,参数多数只有两个值;对于对象运算类算子,一般是第一参数是输入对象,第二个为输出对象,也就是运算结果,而第三行以外的为参数选项。

前面总结了利用HALCON进行模板匹配的一些方法,讨论了利用物体形状的轮廓进行匹配的步骤和如何来优化匹配的速度,提高匹配的精度和速度,当然这两者之间本身也存在着制约,而在这两者之间找到一个适合自己要求的结合点,正是我们要研究和实验的。模板匹配并不是单纯的一个任务,它是一些其他工作的一个必备环节,比如物体识别、对象跟踪、检验产品、零件统计等等一些机器视觉应用。在很多情况下,模板匹配是个不错的选择。在前面总结模板匹配方法的基础上,利用HALCON做了一些视频对象跟踪的实验,并多次试验来调整程序参数优化跟踪过程,采用标准视频进行测试,将这些方法作了如下总结。

首先来看看HALOCN中的帧采集器(FrameGrabber),HDevelop提供这样一个函数来开启你采用的帧采集器(这里我的理解就是图像采集卡或工业摄像机)open_framegrabber(),这个函数中指定了HALCON目前支持的一些帧采集器的文件参数,主要有'BARRACUDA', 'BaumerFCAM', 'BCAM1394', 'BitFlow', 'DahengCAM', 'DahengFG', 'DFG-BW', 'DFG-LC', 'DirectFile', 'DirectShow', 'DT315x', 'DT3162', 'File', 'FireGrab', 'FirePackage', 'FlashBus', 'FlashBusMX', 'Ginga++', 'GingaDG', 'IDS', 'INSPECTA', 'Leutron', 'MatrixVision', 'MeteorII', 'mEnable3', 'MultiCam', 'Opteon', 'p3i2', 'p3i4', 'PT1000CL', 'PX', 'PXC', 'PXD', 'PXR', 'SaperaLT', 'TAG', 'TWAIN', 'uEye';除此之外,在官方网站上也在逐步推出新支持的一些采集卡,比如近期推出的支持大恒的DahengCAM的USB20接口(更多的信息请访问>

以上就是关于halcon12版程序无法启动oxcooooo7b,电脑是64位win7,求大神指点全部的内容,包括:halcon12版程序无法启动oxcooooo7b,电脑是64位win7,求大神指点、halcon18安装教程(安装方法+激活教程)、怎样使用HALCON/.NET类等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10124198.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存