勇哥目前在一款尺寸测量设备中,应用到了一些算法,在这里做记录。下面是算法用到的一些函数。/// <summary>
/// 新建一条拟合直线
/// </summary>
&n
已知直线的起始端点与终止端点,移动到指定点的位置。这个必须要考虑直线有可能是任意角度的问题。#代码如下:要注意,下面的代码需要安装netMarketing类库。using HalconDotNet;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawin
注意看下面的8个点(绿色的小点),我们想由8个点拟合出一条直线。拟合完成的直线halcon代码如下:read_image (Image, 'C:/Users/Administrator/Desktop/尺寸机/建模/395876G-3-HWR.bmp')
*dev_open_window(0, 0, 2000, 2000, 'black', WindowHandle)
dev_set_c
此方法旨在满足部分区域拍照后,想输出成一张图,对重叠区域要求不是很高。区别于图像拼接方法,请注意。勇哥2019/5注:下面的办法只适合拼合灰度图片,如果你想拼合彩色图片则要用另外的办法。在这里,我在一个文件夹中保存了9张图,遍历读取,从而合成显示。图片合成方法public void ImageJigsaw(string path = "C:/Users/team/Desktop/4/")
在视觉调试的时候,如果断点查看Linef对象的Points信息(即线的点集合),都是包含点位置x,y信息的数据,有些时候想显示Linef对象的points信息为图形化,则可以使用下面的小程序。你只需要vs的“即时窗口”输出这个Points对象,然后把它复制下来,粘贴到程序窗体中,然后点击“计算窗口内points”转换即可。下面的复制下来的Points对象: [0]: {4086.82373046875,1817.00036621094,0,0}
&n
见下面的halcon代码,第4句将无法在屏幕上绘制,因为列坐标529。gen_circle(Circle, 344.02661132813, 444.00024414063, 2)
gen_circle(Circle, 343.42919921875, 472.00024414063, 2)
gen_circle(Circle, 342.57739257813, 501.00024414063, 2)
现象截图是这样的,看图片有时候这个现象是偶尔出现,有时候还取图不完整。这个现象可尝试从网卡设置上解决问题。还有一个方法是在程序上做一点设置。我们先看下网卡设置。很简单,网卡配置中有一项被称为“巨帧”,可以由原来“不启用”而改为最大值为4096.在有些网卡配置中,这个称为“接收缓冲区”,把它设置为最大。由于这种现象在IEE1394相机上看不到,因此请童鞋们毫不怀疑要从网络设定上去找问题。另一个方法是从软件上做设定,勇哥给的程序示示例仅用于基于halcon开发的C#程序。其中:GevSCPSPack
勇哥把netMarketing类库改为halcon12,发现程序可以编译,但是运行起来报下面的错误。看来和原来的halcon10还是有所区别。下面的摘抄的网络上的资料:Halcon使用没有问题,二次开发可以写程序,运行时候提示halcon相关模块丢失;无法加载+DLL“halcon”:+找不到指定的模块。+(异常来自+HRESULT:0x8007007E)。复制代码问题解决:简单解决:把缺少的模块dll(如halcon.dll、halcondotnet.dll)放到运行目录,可以解决。但是每个工
勇哥原来的程序都是工作在halcon10下面的,某一天尝鲜安装了halcon12,用起来很爽的感觉。但是今天跑以前的某个视觉程序时,软件起动会报错误:help files for package 'system' ……看起来这个错误8000很是莫名其妙的,说什么help目录无效。后面那句 Please check the correct setting of HALCONROOT让我检查系统环境变量HALCONROOT。这也是网上搜索到的解决方法。我把HALCON-12