2018-10-23 19:00:20
前几天,上传自己的个站到git上的时候,手欠脑发晕的用了次git reset --hard xxxxxx 命令。由于只在线上传入了一个index.html页面(自己都不知道自己咋想的,就这么干了,O__O"…),且第一次commit的时候也只commit了一个index.html文件,其他文件的只是通过git add --all命令进行本地追踪。然后,突发奇想,想恢复到第一次提交的时候(...
2018-10-21 18:58:55
基于组件的模板匹配:应用场合:组件匹配是形状匹配的扩展,但不支持大小缩放匹配,一般用于多个对象(工件)定位的场合。算法步骤:1.获取组件模型里的初始控件 gen_initial_components()参数:ModelImage [Input] 初始组件的图片InitialComponents [Output] 初始组件的轮廓区域ContrastLow [Input] 对比度下限ContrastH...
2018-10-21 18:51:19
NCC匹配基于Normalized cross correlation(NCC)用来比较两幅图像的相似程度已经是一个常见的图像处理手段。在工业生产环节检测、监控领域对对象检测与识别均有应用。NCC算法可以有效降低光照对图像比较结果的影响。而且NCC最终结果在0到1之间,所以特别容易量化比较结果,只要给出一个阈值就可以判断结果的好与坏。传统的NCC比较方法比较耗时,虽然可以通过调整窗口大小和每次检测...
2018-10-20 22:52:38
由于项目要用到Ftp上传文件,因此需要在自己的电脑上安装一个ftp服务器供测试程序。网上搜索了一下,发现针对win10的很少而且有错误,特此留下一篇教程,专用针对Win10专业版的用户。我的系统版本如下:右键原来winxp的开始按钮。然后选择“应用和功能”再选择“程序和功能”然后“启用和关闭windows功能”勾选“FTP服务器”"所有控制面板项"如果你找不到这个“所有控制面板...
2018-10-20 20:22:01
edtFTPnet官方网站:http://www.enterprisedt.com/products/edtftpnet/或者使用VS的包管理器也可以方便安装此组件:目前最新版本为2.2.3,下载后在bin目录中找到edtFTPnet.dll,在项目中添加引用。下面为一些用法:1、FTP服务器根目录为web,在它下面创建如下图示的目录和上传文件FTPConnection.CommandEncodi...
2018-10-19 19:27:11
《zw版·Halcon-delphi系列原创教程》 Halcon分类函数013,shape模型为方便阅读,在不影响说明的前提下,笔者对函数进行了简化::: 用符号“**”,替换:“procedure”:: 用大写字母“X”,替换:“IHUntypedObjectX”:: 省略了字符:“const”、“OleVariant”【示例】 说明函数:procedure AddNoiseWhiteConto...
2018-10-19 17:17:47
德国MVTec公司开发的HALCON机器视觉开发软件,提供了许多的功能,在这里我主要学习和研究了其中的形状匹配的算法和流程。HDevelop开发环境中提供的匹配的方法主要有三种,即Component-Based、Gray-Value-Based、Shape-Based,分别是基于组件(或成分、元素)的匹配,基于灰度值的匹配和基于形状的匹配。这三种匹配的方法各具特点,分别适用于不同的图像特征,但都有...
2018-10-19 17:12:20
初始时刻,我们准备好参考图像,并对其做一定的处理,然后我们需要从参考图像中导出模板,也就是将参考图像裁剪成所谓的模板图像。获取模板图像可以通过设置ROI来完成。对于某些应用来说,也可以使用综合模板代替模版图像。综合模板既可以是综合创造的模板图像,也可以是一个XLD轮廓。裁剪参考图像,使之成为模板图像为了创建模板图像,我们需要从参考图像中选取ROI,并使用 reduce_domain裁剪图像的定义域...
2018-10-19 17:09:39
任务:选出图中的白色圆形区域;使用基于灰度的模板匹配,主要使用以下算子:add_channels() ——把灰度值添加到区域中。best_match() ——寻找一个模板和一个图像的最佳匹配。dev_clear_window ()
read_image (Image, 'C:/Users/Administrator/Desktop/image.bmp')
gen_circle...
2018-10-19 17:05:53
halcon的模板匹配种类有很多种,方法各有优缺点,一般有基于灰度的匹配,基于形状的匹配等等,这里具体理论和方法不做详解,只简单总结一个实例。图像匹配一般需要对旋转放缩进行处理,另外为了提高搜索效率,常用用图像金字塔来处理模板图像,图像金子塔就是把图像按一定算法,缩小为不同比例的模板,减少像素。一般的模板匹配流程如下:所以首先创建模板,模板的创建就是采集一张自己需要的原始图像,如下我采集的原始图像...
2018-10-19 16:57:26
二维仿射变换,顾名思义就是在二维平面内,对对象进行平移、旋转、缩放等变换的行为(当然还有其他的变换,这里仅论述这三种最常见的)。 Halcon中进行仿射变换的常见步骤如下:① 通过hom_mat2d_identity算子创建一个初始化矩阵(即[1.0, 0.0, 0.0, 0.0, 1.0, 0.0]);② 在初始化矩阵的基础上,使用hom_mat2d_translate(平移)、hom_mat2...
2018-10-19 16:53:58
Halcon中实现旋转的方式由两种。一种是rotate_image,该方式实现简单,但只能绕中心旋转。二是affine_trans_image,该方式实现较复杂,但是可以实现绕任意位置的旋转。1 rotate_image*Image和ImageRotate分别是输入和输出图像
*Phi是输入的旋转度数
*interpolation是内插方式,默认为'constant' rota...
2018-10-19 16:37:26
create_shape_model创建模板,这个函数有许多参数,其中金字塔的级数由Numlevels指定,值越大则找到物体的时间越少,AngleStart和AngleExtent决定可能的旋转范围,AngleStep指定角度范围搜索的步长;这里需要提醒的是,在任何情况下,模板应适合主内存,搜索时间会缩短。对特别大的模板,用Optimization来减少模板点的数量是很有用的;MinConstra...
2018-10-19 16:15:11
注:本文内容大量引用了王成群所著《Halcon工业使用教程》第二册中9.1.3 find_shape_mode的内容。 HALCON中最实用的算子find_shape_model,该算子通过模板在图像中寻找没有几何缩放的目标。本文重点对其主要参数进行了归纳整理。通过对该参数的分析,得出通过优化匹配角度、金字塔层数以及贪婪度可减少模板寻找的时长。 find_shape_model...
2018-10-19 15:04:11
halcon有三种模板匹配方法:即Component-Based、Gray-Value-Based、Shaped_based,分别是基于组件(或成分、元素)的匹配,基于灰度值的匹配和基于形状的匹配,此外还有变形匹配和三维模型匹配也是分属于前面的大类本文只对形状匹配做简要说明和补充:Shape_Based匹配方法:上图介绍的是形状匹配做法的一般流程及模板制作的两种方法。先要补充点知识:形状匹配常见的...
2018-10-19 14:59:13
Rinspect_gasket_local_deformable.hdev检测垫圈局部变形*这个例子演示了如何利用局部变形匹配(local deformable matching)来寻找出垫圈是否变形dev_update_off()Smoothness:=25read_image(ModelImage,..read_image( Image,......下面是ModelImage和Image(两个...
2018-10-19 13:34:05
halcon软件最高效的一个方面在于模板匹配,号称可以快速进行柔性模板匹配,能够非常方便的用于缺陷检测、目标定位。下面以一个简单的例子说明基于形状特征的模板匹配。为了在右图中,定位图中的三个带旋转箭头的圆圈。注意存在,位置、旋转和尺度变化。上halcon代码:dev_update_pc ('off')
dev_update_window ('off')
de...
2018-10-19 09:30:03
图像分割之阈值分割: 请参见halcon例程:gray_histo.hdev 此例程中主要用到两个算了: 1.gray_histo(Regions,Image:::AbsoluteHisto,RelativeHisto) 作用:获得图像的某一指定区域内的灰度分布,将数据写入到参数AbsoluteHisto和RelativeHisto 其中AbsoluteHisto是指图像内0-255灰度...
2018-10-18 13:35:43
Image一 读取的3种方式:read_image( image,'filename') //image 是输出对象,后面是输入文件的路径和名称读取多图: 1,申明一个数组,分别保存路径ImagePath:=[]ImagePath[0]:='D:/1.bmp'ImagePath[1]:='D:/2.bmp'ImagePath[2]:=...
2018-10-18 13:34:31
1. 无论读入什么图像,读入图像显示效果明显和原始图像不一致,哪怕是从相机读入的图像,也是明显颜色差异。什么原因引起?初步诊断是,显示的时候调用的颜色查找表存在异常不是 default ,而是其它选项。此时可以通过查阅相关参数,调用set_system解决,也可以 在 编辑-》参数选择-》颜色查找表进行更改 。2. 裁剪图像;从图像上截取某段图像进行保存。如何实现该操作 ?首先应该知道,regio...
2018-10-18 11:03:16
图像增强一般通过如下几种方式:1. 灰度值线性变换scale_image: g’ := g * Mult + Add g为当前的灰度值,Mult 为所乘的系数,Add为加的偏移值,由公式可以看出用scale_image来处理图像是个线性变化,会让黑的地方更黑,亮的地方更亮。scale_image_max:将灰度值拉伸到0-255。2. 增强图像对比度- emphasize(Image : Imag...
2018-10-17 15:39:09
今天打包netMarketing上传服务器, 发现这个包无法被引用.报下面的错误!这个错误是VS2017的包管理器报出来的.搜遍网络, 这个问题无解.最后发现是自己打包出了问题.正确的包格式应该是下面这样的:注意红框处所示.看来对于NuGet Package Explorer 还是不了解, 操作错误造成的.2018/12/29注:勇哥今天碰到了这个API key无效的问题。后来发现这个Api ke...
2018-10-16 18:51:33
很多时候当我们用edges_sub_pix, threshold_sub_pix 等算子得到边缘后,因为有噪声、物体本身断裂等原因 很多边缘是共线但是断裂的如下图所示,提取键盘的网格,左图有很多共线线段,右图为共线连接后的结果更详细信息可查阅自带例程:measure_grid.hdev一个更直观的例子提取网格,左图因为网格有交叉点通过edges_sub_pix得到是断裂的网格线,右图为union...
2018-10-16 15:40:24
由于halcon的这些基本运算符有时候要用时查帮助手册比较困难,不像算子那样容易搜索到帮助。因此特在此留下一篇,以方便大家查阅。1、标准赋值Ø assign(Input, Result) //编辑形式,永远都是输入在前,输出在后 1: assign(sin(x) + cos(y), u)Ø Result := Input //代码形式 1: u := si...
2018-10-15 17:12:22
如下图,我们需要找到该产品的中心的螺丝孔。处理结果截图如下:halcon的中间处理结果如下图这个例子在各类锁螺丝设备中都比较常见。采用基本的形态学算子,如:threshold, connection, select_shape 即可以解决问题。但是如果是多种颜色的产品,可能不光要调节面积、阈值等算子的参数,还需要调用不同的光源或者相机曝光参数等。在下面的代码中, inner_circle算子即求出...
2018-10-12 22:15:51
由于未添加ignore文件造成提交的项目很大(包含生成的二进制文件)。所以我们可以将编译生成的文件进行过滤,避免添加到版本库中了。首先为避免冲突需要先同步下远程仓库$ git pull1在本地项目目录下删除缓存$ git rm -r --cached .1新建.gitignore文件在项目的根目录下面新建.gitignore文件并添加相应的过滤规则再次add所有文件输入以下命令,再次将项目中所有文...
2018-10-12 21:25:27
在使用Git的过程中,我们喜欢有的文件比如日志,临时文件,编译的中间文件等不要提交到代码仓库,这时就要设置相应的忽略规则,来忽略这些文件的提交。简单来说一个场景:在你使用git add .的时候,遇到了把你不想提交的文件也添加到了缓存中去的情况,比如项目的本地配置信息,如果你上传到Git中去其他人pull下来的时候就会和他本地的配置有冲突,所以这样的个性化配置文件我们一般不把它推送到git服务器中...
2018-10-12 21:08:35
git pull如何强制覆盖本地文件呢?情景如下:团队成员正在修改我们正在处理的网站的模板他们正在添加一些图像到图像目录(但忘记在源代码控制下添加它们)他们通过邮件将图像发送给我我在源代码控制下添加图像,并将其与其他更改一起推送到GitHub他们不能从GitHub提取更新,因为Git不可覆盖他们的文件。得到的错误是:error: Untracked working tree file 'p...
2018-10-12 11:16:41
System.Tuple 类型是在.NET 4.0中引入的,但是有两个明显的缺点:(1) Tuple 类型是引用类型。(2) 没有构造函数支持。为了解决这些问题,C# 7 引入了新的语言功能以及新的类型(*)。现在,如果您需要从函数中返回两个值的合并结果,或者把两个值合并到一个哈希表中,可以使用System.ValueTuple类型并使用一个精短的语法来构造它们:这有助于IDE和编译器“检查”元素...
2018-10-12 10:58:48
前言微软昨天发布了新的VS 2017 ..随之而来的还有很多很多东西... .NET新版本 ASP.NET新版本...等等..太多..实在没消化..分享一下其实2016年12月就已经公布了的C#7.0的新特性吧,虽然很早就出来了,但咱这IDE不支持啊..不过在昨天的VS2017中已经完美可以支持使用了.E文好的,移步官方介绍地址:https://docs.microsoft.com/zh-cn/d...