2018-10-25 20:42:43
今天终于解决了困扰我很久的一个问题,在VC中调用HALCON中的分割函数后,在最后返回显示时总是报错,让我郁闷了很久,Undefined gray in get_image_pointer3 或Undefined gray in get_image_pointer。 原来问题出在对于bin_threshold、threshold等这些分割函数的返回值上面,把返回值当成Image变量直接赋...
2018-10-25 09:38:00
最早见过这段话是在“遇见未知的自己” 引用。读到它时让我身体一震,引发人强烈的哲学思考。我有一副身体,但我并非自己的身体。我可以看见并感觉到我的身体,然而凡是可以被看见以及被感觉到的,并不是真正的观者。我的身体也许疲惫或兴奋,生病或健康、沉重或轻松、也可能焦虑或平静,但这与内在的真我全然无关。我有一副身体,但我并非自己的身体。 我有欲望,但我并非自己的欲望。我能知晓我的欲望,然而那可以被知晓的,并...
2018-10-24 21:51:04
在学习halcon算子sub_image(ImageMinuend, ImageSubtrahend : ImageSub : Mult, Add : )时,在样例中遇到了一个操作* This example demonstrates how to subtract two images
* using the operator 'sub_image'.
*
*
dev...
2018-10-24 21:24:47
1, autobahn.hdev: Fast detection of lane markers控制语句MinSize:=30get_system('init_new_image', Information)得到当前halcon系统的参数值(这里执行后得到information的值为' true')set_system('init_new_image'...
2018-10-24 20:49:33
Compute the distance transformation of a region 该算子的作用是计算对region转换距离。该算子的形式为distance_transform(Region : DistanceImage :Metric,Foreground,Width,Height : ) 怎么理解这个算子呢,他的作用是输出一副图像,这幅图像是每个点到这个reg...
2018-10-24 10:47:35
焊点检测的难点主要在于图像上粘连的焊点怎么处理,例如下图中右上边的两个焊点就粘连在一起。这个问题比较难以处理,下面的例子给出的基本策略是利用腐蚀来进行处理。原图,待检测焊点处理后的图像,可以看到9个焊点都检测到了。源程序: //焊点检测
var winHandle = win.HalconWindow;
var Image1 = halcon.read_image("C:/Use...
2018-10-23 21:23:45
下面是标准位置的图片,使用使用它创建了一个shape model,名字为:Matching 02.shm下图是需要做模板匹配,摆正姿式的图片。下图是模板匹配后,再使用仿射运算后旋转到正确位置的图像。源代码: //find_shape_model
var winHandle = win.HalconWindow;
var ModelId=halcon.read_shape_model(@&...
2018-10-23 19:03:59
场景: 出差时间在外面修改netMarketing的代码,回家后,git pull 回调代码到本地,然后出现下面的错误:$ git pull origin master
From https://github.com/skcircle/hackpigLib
* branch master -> FETCH_HEAD
error: Your local c...
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...