2020-03-31 17:01:18
都说“纸上得来终觉浅,绝知此事要躬行”,可惜咱没这条件呀,没项目咱也不能干坐着呀,那咱发挥主观能动性,咱不是学机械的么,还好还记得一点CAD的知识,今天小杨说事,咱就“纸上谈兵”,用CAD结合公司的视觉算法平台VisionMaster来说说相机映射和对位贴合的事,如果有错误的地方,还请各位自动化前辈多多指教,毕竟网上的关于这个知识太少了。实际的生产过程中,我们常常会碰到这样的情况,机械手从工位一吸...
2020-03-31 09:37:10
OpenCv的Mat和Halcon的HObject数据类型的互相转换,Halcon的版本是13.0,OpenCV的版本是3.2HObject Mat2HObject(const cv::Mat &image)
{
HObject Hobj = HObject();
int hgt = image.rows;
int wid = image.cols;
int i;
/...
2020-03-31 09:21:52
最小二乘法拟合直线概念:最小二乘法多项式直线拟合,根据给定的点,求出它的函数y=f(x),当然求得准确的函数是不太可能的,但是我们能求出它的近似曲线y=φ(x) 原理假设有点 , I = 1,2,3,……n,求近似曲线y=φ(x),并且使得y=φ(x)与y=f(x)的平方偏差和最小,偏差其中我们要找到一组最好的a b ,“最好的”就是要使选出的a b能使得所有的误差达到最小化。在此要注意以下,y...
2020-03-31 09:08:53
勇哥接触过的基本上是面阵CCD,对于线扫相机没有接触过,这个贴子介绍了线扫相机的halcon标定的知识,放在这里做为扫盲贴子。一、标定板标定 13.0在工业镜头选型过程中,为了方便各位朋友计算工业镜头参数,现提供靶面尺寸表供参考。1.1英寸————靶面尺寸为宽12mm*高12mm,对角线17mm1英寸————靶面尺寸为宽12.7mm*高9.6mm,对角线16mm2/3英寸————靶面尺寸为宽8.8...
2020-03-30 23:24:10
这个不是hlacon的标准标定板。勇哥想知道这个+-0.009mm是怎么整出来了。这个例子值得研究一下。ImgPath := '3d_machine_vision/calib/'
dev_close_window ()
dev_open_window (0, 0, 640, 480, 'black', WindowHandle)
dev_update_off...
2020-03-30 23:13:36
*
* Initialize the program
dev_close_window () //关闭图形窗口
dev_open_window (0, 0, 768, 576, 'black', WindowHandle) //打开一个原点在(0,0)的宽为768,高为576,背景为黑色的图形窗口;
dev_update_off ()
dev_set_draw...
2020-03-30 22:45:05
这个例子有点意思 ,非常值得学习一下。它是测量透视畸变图像上的划痕的长度。利用halcon标定板,在透视畸变下进行标定。把畸变消除后,测量标准片的长度,很准确,是3cm。然后测量透视畸变图像上的划痕的长度。代码:* This program measures the length of scratches in world
* coordinates in a perspectively dis...
2020-03-30 22:13:34
two_camera_calibration.hdev* This example program shows how high precision mosaicking
* can be performed with calibrated cameras.
*
* Further information can be found in the
* Solution Guide III-...
2020-03-30 17:58:37
Region特征分为三部分(1)基础特征:region面积,中心,宽高,左上角右下角坐标,等效椭圆长半轴短半轴方向,洞数及其面积,粗糙度,联通数,最大半径等。(2)开关特征:外接圆半径,内接圆半径,圆度,紧密度,长度,矩形度,凸型,偏心率,蓬松度,外接矩形的方向和两边长度等。(3)几何矩特征:二阶矩,三阶矩,主惯性轴等。12region_features(Regions : : Features...
2020-03-30 17:54:40
腐蚀:利用n*n的结构元素扫描图像的每一个像素,结构元素原点与扫描像素覆盖,进行“与”运算,如果都为1,则结果图像的该像素为1,否则为0。(收缩图像)膨胀:利用n*n的结构元素扫描图像的每一个像素,结构元素原点与扫描像素覆盖,进行“与”运算,如果都为0,则结果图像的该像素为0,否则为1。(扩大图像)region边界应用:原图 - 腐蚀后 = 内边界原图 - 膨胀后 = 外边界 1.gen_disc...
2020-03-30 15:38:46
突然想使用一个自定义数据类型的数组做变量,怎么做呢?勇哥研研究了一下,原来FW已经给我们设置好了。你搜索到范型,然后下图第二个划线处就可以选择你自己的自定义类型了!上面示例是List<T>,那么数组类型呢?选择下图所示的Arrary of [T]--------------------- 作者:hackpig来源:www.skcircle.com版权声明:本文为博主原创文章,转载请附上...
2020-03-30 11:48:59
勇哥今天突然想到一个要求:希望read_region读到的Region对象如何转回rectangle2的5个参数。看下面的代码,gen_rectangle2生成的region被保存起来,之后我通过read_region读回来,想得到当初gen_rectangle2的那5个参数常量。通过region_features算子取得的4个参数len1,len2,row,col其小数点后第一位有差别。取到的p...
2020-03-29 08:45:38
勇哥2021/7/21注:现在发现vs2015已经不支持手里的iOpenWorksSDK。于是在网上搜索了一下,如下:1 iOpenWorksSDK对VS2013-VS2017的支持插件https://files.cnblogs.com/files/baihmpgy/iOpenWorksSDK.vsix.zip2 iOpenWorksSDK对VS2010的支持https://files.cnblo...
2020-03-28 21:43:48
..\的写法是相对路径。“./”:代表目前所在的目录。“../”:代表上一层目录。以”/”开头:代表根目录。下图中的路径是: ..\..\bin\Plugins\DateServer\表示的是当前目录的上一级的上一级的Plugins\DateServer 目录。...
2020-03-28 10:47:01
做为学习WF的学习成果,勇哥写了这个Mtv点歌软件。在每学一门语言或者框架时,勇哥都写过类似功能的软件。浪费点文章的位置把其它版本的放这里给各位把玩一下吧:------------------------------Python版本的:《Python Tkinter 学习成果:点歌软件music》plc+单片机+c#版本:《欧姆龙cp1h常用指令学习(十四)练习篇一:红外线遥控点歌》C#版本的:《...
2020-03-27 16:45:16
勇哥今天发现一个问题,流程变量怎么由宿主程序赋值?如果像给代码活动的InArgument, OutArgument的输入输出参数变量赋值那样给活动变量赋值的话 ,你会见到下面的错误。勇哥把流程改了一下,加入两个Assign,让它用静态变量给v1,v2赋值。static是在宿主程序那边定义的。 public static class glob
{
public st...
2020-03-27 09:34:11
因为勇哥看到一份代码,作者为了方便一个类能被任何其它类随时调用,把这全部成员变与方法都定义为static。感觉很怪异,于是抽点时间仔细考虑了一下为啥这样不妥当,罗列几条如下:是否使用静态,相信大家肯定知道静态与实例方法的调用区别:一个是类型调用,一个是实例调用。个人建议更应该从OOP的角度思考这个问题:什么样的行为是需要具体的对象去执行的,什么样的行为是某一个类型/类别拥有的?举个例子:每个人都有...
2020-03-25 22:16:43
这个话题非常重要,因为代码活动是最常用的一种自定义的活动。如果勇哥把代码活动的功能用一个个的halcon算子实现某种视觉功能的话,将会有大量的不同数据类型的参数传入与输出,因为代码活动的InArgument和OutArgument只允许传入一个T,因此需要自己设计自定数据类型来解决这个问题。2020/3/26号 勇哥注:因为代码活动的InArgument和OutArgument只允许传入一个T,因...
2020-03-25 09:51:17
勇哥只知道这个dic只有一个元素,但并不知道key是什么,如何从一个Dictionary里取得第1个key和Value? Dictionary<String, Object> dict = new Dictionary<string, object>();
dict.Add("ClassA", 123);
dict.Add("Class...
2020-03-25 09:35:03
如下图所示:如果你引用的是System.Windows.Controls, 则box.DataSoruce会表示没有这个属性DataSource。如果你引用System.Windows.Forms,则没有问题。勇哥也是刚发现这两者的差别蛮大,又是一个知识的盲点。目前在网上搜索不到这两者的详细区别,只找到这个:暂时就理解为: 因为建立的工程是.net winform程序,所以控件要引用System....
2020-03-24 20:17:08
勇哥想做到下面的效果:几何定位后其坐标给blob的roi做参考,实现物料无论怎么移动旋转,blob的roi都维持相对位置不变的效果。这个也就是halcon的仿射变换常见的应用。先把程序丢上来:(一)几何定位的设置主要设置了掩膜,搜索区域(1个),找到一个固定的特征点。下图是找到的固定特征点。(二)blob工具主要设置ROI区域为仿射矩roi, 这个是关键地方,否则得不到roi跟随几何变换的效果。然...
2020-03-24 14:40:50
在工作流开发中,邮件通知是必不可少。这篇文章中,我将是使用WF4.0一步一步打造一个功能完整的邮件通知节点。 首先,新建一个WorkflowConsoleApplication项目,改名为MailNoticeDemo,如下图: 添加一个CodeActivity活动命名为MailNotice,添加一个ActivityDesigner活动命名为MailNoticeDesigner。项目结构如下...
2020-03-24 10:36:48
勇哥引用一段“工作流设计器”功能的代码,发现:UIElement和System.Windows.Controls无法引用,错误如下图所示:网上找了下资料,如下:System.windows.UIElement
定义了wpf的核心子系统,包括布局layout 输入input和事件event 焦点 等
System.Windows.Controls
则是wpf的控件系统,不是winf...
2020-03-23 16:38:57
例子下载:http://files.cnblogs.com/foundation/ActivityActionSample.rar ActivityAction 类名System.Activities.ActivityActionSystem.Activities.ActivityAction<T>System.Activities.ActivityAction<T1, T2&g...
2020-03-23 16:35:09
例子下载:http://files.cnblogs.com/foundation/AsyncCodeActivitySample.rar 项目说明:Async ActivityAsync的意思是异步,但有一点一定要注意,不能按字面理解,该Activity的功能是以同步的方式调用异步方法的Activity建议看过[WF4.0 基础篇 (十三) InvokeMethod 调用方法 ]后,再看本文 类...
2020-03-23 16:32:46
本文例子下载http://files.cnblogs.com/foundation/GenericActivitySample.rar范型ActivityActivitypublic sealed class GenericActivity<T> : CodeActivity{public InArgument<ICollection<T>> myCollect...
2020-03-23 16:27:40
Tracking 介绍WF跟踪是用来记录工作流执行情况WF跟踪由以下几部分组成:跟踪记录Tracking Records从工作流运行时发出跟踪配置Tracking Profile用来筛选从工作流实例中发出的跟踪记录跟踪参与者Tracking Participants用来订阅跟踪记录。跟踪参与者包括处理来自跟踪记录的负载的逻辑ActivityInfoSystem.Activities.Trackin...
2020-03-23 13:56:46
本节主要介绍WF4 中 WorkflowInvoker的使用本文例子下载:http://files.cnblogs.com/foundation/WorkflowInvokerSample.rar 本文例子说明 WorkflowInvoker类名System.Activitys.WorkflowInvoker文件System.Activities.dll结构说明继承 Object是一个 seal...
2020-03-23 13:52:44
本节主要介绍WF4 中 有返回值Activity的使用本文例子下载:http://files.cnblogs.com/foundation/ActivityWithResultSample.rar 本文例子说明ActivityWithResult类名System.Activities.ActivityWithResult文件System.Activities.dll结构说明继承Activity是一...
2020-03-23 13:49:48
本节主要介绍WF4 中持久化的使用 本文例子下载:http://files.cnblogs.com/foundation/PersistenceSample.rarPersistence 持久化WF4提供了一个抽象类System.Runtime.Persistence.InstanceStore,用于定义持久化的实现.该类来自于System.Runtime.dll可以从InstanceStore类...