[置顶]python知识导航贴,持续更新

[置顶]C# 语言高级特性知识导航贴,持续更新

[置顶]netMarketing类库: 类库说明

[置顶]本站视觉相关教程整理贴子,持续更新

[置顶]C++相关导航贴,持续更新

[置顶]本站收费服务公告(netMarketing源码,工业自动化行业培训班等)

[置顶]2020年勇哥的机器视觉实验项目清单(大纲)

[置顶]本站连载贴子系列,持续更新中……

[置顶]勇哥的免费视频教程清单

[置顶]勇哥在B站发布的视频清单

[置顶]运动控制专题,持续更新

“ 尝试运行项目时出错:未捕获通过反射调用的方法引发的异常”解决

勇哥的vs2017在运行时(f5) 出现下面这个问题。貌似所有的工程运行时(F5)都会出现这个错误,但是可以正常编译,可以直接运行bin下的exe。网上查到了下面的方法:两个解决方法:1) 打开项目属性,选择调试选项卡,将“启用非托管代码调试”一项钩上。2) 打开项目属性,选择调试选项卡,将“启用Visual Studio宿主进程“一项钩掉。但是,对于vs2017来说,找不到上面的选项。勇哥勾选下...

折磨cpu,C#并发计算的性能测试

勇哥买了一台10核心20线程的32G内存的服务器, 一时好奇, 想试试并发运算的情况下, cpu的表现如何 .字符串相关度计算是文本处理和数据挖掘中一个不可或缺的方法,例如论文查重等。Levenshtein Distance可以用来比较两个字符串的相似度,即两个字符串之间的“距离”。这个“距离”其实就是从源字符串变换到目标字符串需要进行的删除、插入和替换的次数。 有不少该算法的改进版本,可大幅...

C#和halcon的混编程序出现长时间拍照时程序崩溃问题的解决经验

勇哥项目中有下面这个拍照函数GrabOneImage()。在其它十几台设备上面运行没发现有什么问题,但是最近发现有一台设备上长时间运行不到半小时,程序就报告崩溃。错误原因是内存不足。 public bool GrabOneImage(bool isDebug) { try { //如果未初始化,先初始化...

Basler相机Sdk采图的演示例程(C#)

勇哥说的这个话题的起因是追求极速的拍图速度。机器ppm不达标的情况下,往往对视觉的处理速度有变态的要求,为了争取处理时间最短,几十毫秒也要争取。halcon的接口是通用接口,其速度是比不上相机厂商自己相机配套的SDK的采图速度的。下面程序运行后,500w的CCD拍图的时间(不算显示时间)达到惊人的32毫秒,如果用halcon接口,最快的我见过是180毫秒。using Basler.Pylon;...

halcon与C#混编的入门贴

这篇主要是C#和Halcon的混合编程,写给新手们看的。halcon源程序:dev_open_window(0, 0, 512, 512, 'black', WindowHandle)read_image (Image, 'C:/Users/Administrator/Desktop/猫.jpg')dev_display(Image)get_image_size(I...

C#中调用halcon引擎来执行hdev程序

调用halcon引擎有两个直接的好处:避免C# 与halcon代码混编时可能产生的内存泄露问题修改halcon程序时不用重新编译C# 勇哥写了一个示例,详细的应用感受和缺点限制勇哥会持续做相关的总结给大家分享。对于halcon17来说,要运行下面的程序,你要引用halcondotnet.dll hdevenginedonet.dllusing HalconDotNet; using Syste...

C#和halcon的混编程序出现序内存泄露、句柄持续增加、视觉程序运行越来越慢等问题的处理

这个话题非常重要。勇哥苦于手中的项目遇到这样的问题。这些问题表现是:(1)视觉程序内存占用会越来越大。这种内存变大通常是缓慢变大,几天不关机持续运行的话,大到几个G也不稀罕。通常,急速内存变大要容易找到问题些,最怕的是缓慢变大。(2) 视觉程序会越运行越慢,会影响设备的PPM。通常工厂里的电脑一辈子不会关机,你可别指望他们会每班给你重启软件一次。(3)程序句柄越来越多,大至几万都有可能。这是一种什...

[netMarketing类库] Config类: 以XML方式保存程序配置文件的类

命名空间:netMarketing.automation.baseClass.ConfigClass.Config功能:以XML方式保存程序配置文件版本要求: netMarketingv1.3.1功能详细说明:这个类是勇哥的同事写的一个类,比较好用,特收录进netMarketing中。这个类使用的时候只需要做两件事:(1)创建一个类,用来声明要保存配置文件的项目(2)在你的调试面板中放入一个pro...

二维点的旋转 续三(C#演示代码)

勇哥继续谈谈绕任意点的旋转。绕原点的旋转是二维旋转最基本的情况,当我们需要进行绕任意点旋转时,我们可以把这种情况转换到绕原点的旋转,思路如下: 1. 首先将旋转点移动到原点处 2. 执行如2所描述的绕原点的旋转 3. 再将旋转点移回到原来的位置 (图1)勇哥根据上述原理写了段演示代码: /// <summary> /// 点...

经典算法——绘制空心圆续(二)

实际应用中,往往需要三点确定一个圆。例如,在机器人视觉标定中,为了能不用手工创建工具坐标,就可以通过三点定圆的方式算出工具坐标的中心在哪里。我们知道,如果三点不共线的情况下是可以产生一个圆的,有关的公式推导见下面的贴子。三点确定一个圆的算法(C#代码)这里勇哥提供公式的实现代码:private Tuple<PointF, double> drawCircle3P(PointF pt1,...

设计模式之 面向对象的养猪厂的故事,C#演示(二)

(三) 优先使用聚合,而不是继承有一段时间,养猪场的老板雇用了清洁工人来打扫猪舍。但有一天,老板忽然对自己说"不对啊,既然我有机器人,为什么还要雇人来做这件事情?应该让机器人来打扫宿舍!"于是,这个需求被提交到了机器人的研发小组。看到这个需求,我们敏感地意识到,这是一个潜藏了更多变化的需求,未来机器人的功能还可能会不断增加,于是,我们提取出了一个抽象的机器人接口,并实现了两个具...

二维点的旋转(C#演示代码)

勇哥先来谈谈点绕原点旋转如下图, 在2维坐标上,有一点p(x, y) , 直线opの长度为r, 直线op和x轴的正向的夹角为a。 直线op围绕原点做逆时针方向b度的旋转,到达p’ (s,t) s = r cos(a + b) = r cos(a)cos(b) – r sin(a)sin(b) (1.1)t = r sin(a + b) = r sin(a)cos(b) + r cos(a) s...

经典算法——绘制空心圆续(一)

话题见下文:经典算法——绘制空心圆勇哥这里写下其实践的内容。首先,画圆公式为: 原点为圆心,半径为r(r>0)的圆的标准方程为x2+y2=r2下面的代码中ox,oy是原点的位置, radius是圆的r。g是画布句柄。private void drawCircle2(Graphics g, int radius, int ox, int oy) {...

设计模式之 面向对象的养猪厂的故事,C#演示(一)

这是勇哥很久以前在博客园里面发的文章。它是读设计模式的书时做的实践,我个人是比较喜欢的,这里转载过来给学习设计模式的朋友把玩一下。对于设计模式, 从本质上说, 其最大的用途就是适应需求的变化. 因为有了设计模式,我们可以在设计阶段就为未来可能发生的变化留下足够的空间.我们通过一个建造现代化养猪场的故事, 来讨论一下设计模式与需要变化之间的关系.(一)设计模式最根本的意图是适应需求的变化一个机器人研...

三点绘制圆弧(C#代码)

1. 三点绘制圆 已知三点为(x1,y1)、(x2,y2),(x3,y3),求三点形成的圆的坐标,可以设求得的圆的原点为(X,Y),半径为R,这样可以得到方程组: (x1-X)²-(y1-Y)²=R² (1)式 (x2-X)²-(y2-Y)²=R² (2)式 (x3-X)²-(y3-Y)²=R² (3)式由上述方程组可以得到: 2(x1-x2)X +2(y1-y2...

netMarketing.Net.SocketServerAndClient命名空间下的TcpServer与SocketClient网络通讯类

命名空间:netMarketing.Net.SocketServerAndClient.TcpServernetMarketing.Net.SocketServerAndClient.SocketClientnetMarketing.Net.SocketServerAndClient.RunLog功能:Sokect服务端与客户端版本要求:netMarketing v1.3.1功能详细说明:最近公司...

C#由数据库表动态生成编辑显示控件(Sql Server数据库)

勇哥的一个案子里面用到这个功能。因为考虑到数据库的表字段没有定形,经常需要修改。如果使用手工拖放TextBox的方案与字段对应的话,程序经常需要改变。因此最好是由数据库表的字段,动态生成TextBox进行显示与编辑,就像下图程序界面这样。首先,我们列出表结构,获取全部字段。然后new出textbox控件,add进控件flowLayoutPanel,这个控件是其它控件的容器,内容过多时自带滚动条。怎...

创建窗口句柄之前,不能在控件上调用Invoke或BeginInvoke

勇哥手里这份代码启动后报下面的错误。“创建窗口句柄之前,不能在控件上调用Invoke或BeginInvoke”经检查,是在初始化设备时由OnNotifyError报出来。这个OnNotifyError是主窗体上的一个委托。原来是这样的。 public void OnNotifyOK(string msg) { this.Invoke(new Ac...

[netMarketing类库] EntityHelper类和SQLServerClient类,Sql Server数据库表实体类操作的类

命名空间:netMarketing.database功能:EntityHelper类和SQLServerClient类,数据库表实体类操作的类版本要求:netMarketing1.3.1功能详细说明:这个类用于SQL Server数据表的操作。它通过表对应的实体类来操作表。勇哥谈谈实体类操作表的方式是怎么样的?有什么好处?下图中是数据库中的表。下图是实体类生成工具,生成的类“柔性撕膜机”,它是一个...

无法在 DLL“halcon”中找到名为“HLIIsUTF8Encoding”的入口点。

勇哥在把netMarketing类库由halcon10改为halcon17时,遇到载入halcon窗口时报下面的错误:无法在 DLL“halcon”中找到名为“HLIIsUTF8Encoding”的入口点。经检查,是因为程序的bin目录下缺少halcon17的halcon.dll这个文件。也就是说,只把halcondotnet.dll文件换成halcon17的是没有用的。其实,最保险的就是把hal...

微软的Chart图表控件C#演示代码,免费的图表控件

微软的Chart图表控件好处是免费的,并且基本的画曲线、柱状图等功能还是有的。虽然Teechart非常优秀,但是它是收费的。所以熟悉一下Chart没什么坏处,目前勇哥有一个案子也用到了Chart,是一款测量R角的设备。勇哥提供两段代码来演示Chart的用法,以后有机会,还是想把Chart写成一个ChartHelper类集成到netMarketing中去。第一个演示例子:using System;...

C# 反射取得类的属性名、类型、值

今天勇哥有一段代码遇到这个需求,即把数据库表的实体类的属性名字与其值显示到UI上去。在网上找到几个函数,解决了问题。 /// <summary> /// 获取类中的属性值 /// </summary> /// <param name="FieldName"></param>...

SQL Server连接字符串和测试例程(C#)

网上搜索SQL Server的连接字符串,发现非常多,可以勇哥试了几个都不行。后来发现用VS本身的数据库连接向导可以方便查看连接字符串。详细看下面的图片:下面看一个演示例程:using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System....

解决在win7系统下安装vs2013需要IE10的问题

在win7 64位系统下安装vs2013有时候会被要求先安装ie10及以上版本,这个让人比较痛苦。各位可以创建一个扩展名为.bat的文件(即操作系统的批处理文件),写入下面的内容,最后运行这个批处理文件即可。@ECHO OFF :IE10HACK REG ADD "HKLM\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer&q...

Epson四轴机器人的手眼标定(原理并附上halcon代码)

关于机器人视觉的手眼标定的原理,勇哥先放上一些教程资源:工业现场相机坐标系和机械手坐标系的标定halcon之手眼标定基本原理手眼标定的两种方式手眼标定之9点法众所周知,目前机器视觉项目,很大一部分都是引导机器人去取料 放料等工作。 这个里面就有个非常重要的工作要做。就是将相机的坐标系 映射到机器人坐标系里面,这样才可以实现视觉配合机器人动作。 通常这种标定使用有多点标定法(俗称九宫格标定法)可以...

C# 设计模式练手(二):单例模式

单例模式主要处理两个问题: 全局访问与实例化控制单例模式采用private构造函数,让该类不能外部new, 并且提供static方法 GetInstance()方法返回唯一实例.采用lock机制可以避免在多线程环境下可能产品多个实例.下面是勇哥编写的一个例子:工具箱1Form和代码using System; using System.Collections.Generic; using Sys...

[netMarketing类库] EpsonRobot类: Epson机器人远程控制模块

命名空间:netMarketing.automation.Robot.Epson功能:Epson机器人的远程控制类功能详细说明:EpsonRobot类是一个用于以太网远程控制Epson机器人的类。使用前,先把机器人的控制器配置为“远程以太网”模式。有关远程控制的知识,请参考勇哥另一篇贴子的介绍:Epson机器人远程控制指令测试注意:使用这个类需要使用netMarketing V1.3.0及以上的版...

C# Winform 添加现有项窗体,窗体的Designer.cs不在窗体下 也就是Designer.cs /.cs /.resx三者分离的解决办法

这个问题是这样的,勇哥希望把另一个程序的一个form或者自定义控件复制到现有的工程中去。最笨的方法是创建空白form,然后把要复制的form上的内容粘贴过来,然后把相应代码也粘贴过来。最蠢的人都知道直接把这个form的三个文件复制过来就可以了,三个文件即是Designer.cs /.cs /.resx下图所示是: Form1.cs, Form1.Designer.cs, Form1.resx但是...

三菱FX5U与上位机通讯时的网络设置

勇哥的公司现在大量采用三菱FX5U的PLC。据说这款产品在8轴的产品里价格有竞争力,而且还内带一个以太网口。三菱PLC的内存读写可以采用前辈写的HSL模块,但是需要在PLC端做一些设置,否则连接不上。设置如下图所示,其中分配了两个端口号,4999,6000。也就是说这款产品可以指定多个网络端口号,以供外部设备与其网络通讯。在上位机这边,我们以tcp client来访问即可,即PLC是一个tcp s...

测试电芯直流内阻的小程序(C#)

什么是电芯的直流内阻?下面两篇文章各位可以参考一下:关于电池的内阻知道这几点就够了?IT8511+表测试电芯的直流内阻下面是IT8511表的测试指令,也可以使用字节流指令。MEAS:CURR? SYST:REM 远程模式 MODE CURR 设置定电流模式 CURR 10 设置放电电流 MEAS:VOLT:DC? 读取电压值 INP 1 打开电子负...
会员中心
搜索
«    2024年4月    »
1234567
891011121314
15161718192021
22232425262728
2930
网站分类
标签列表
最新留言
    热门文章 | 热评文章 | 随机文章
文章归档
友情链接
  • 订阅本站的 RSS 2.0 新闻聚合
  • 扫描加本站机器视觉QQ群,验证答案为:halcon勇哥的机器视觉
  • 点击查阅微信群二维码
  • 扫描加勇哥的非标自动化群,验证答案:C#/C++/VB勇哥的非标自动化群
  • 扫描加站长微信:站长微信:abc496103864
  • 扫描加站长QQ:
  • 扫描赞赏本站:
  • 留言板:

Powered By Z-BlogPHP 1.7.2

Copyright Your skcircle.com Rights Reserved.

鄂ICP备18008319号


站长QQ:496103864 微信:abc496103864