摘要: Halcon中线条提取的算子主要有: lines_color(Image : Lines : Sigma, Low, High, ExtractWidth, CompleteJunctions : ) lines_facet(Image : Lines : MaskSize, Low, High, 阅读全文
posted @ 2019-08-30 20:01 xh6300 阅读(7299) 评论(1) 推荐(2) 编辑
摘要: 项目需求:要求圆环外圈毛刺的凸出高度不得超过20像素,如超过判为NG。 算法分析:按照一般的思路,应该是先将外圈拟合成一个圆;然后将这个工件阈值化,提取工件区域;然后用该区域减去之前拟合的圆,剩下的区域就是毛刺部分了。那么什么样特征的毛刺算超标的呢?很显然,如果仅仅用'area'、'inner_ra 阅读全文
posted @ 2019-08-01 11:40 xh6300 阅读(2085) 评论(8) 推荐(0) 编辑
摘要: 注:这篇文章我四年前发布在其他地方,现在移过来。 如果你对相机只有很少了解,那么看这篇文章再好不过啦,我结合很多资料,力图用最通俗易懂的方式进行讲解。 相机拍摄时最重要的3个参数就是——光圈、快门、ISO次重要的参数有——焦距、景深、曝光 在介绍光圈、快门、ISO之前,必须先介绍曝光。曝光准确的照片 阅读全文
posted @ 2019-04-11 00:01 xh6300 阅读(32635) 评论(5) 推荐(4) 编辑
摘要: 一、Halcon小函数的封装和修改 1、名词解释: 算子:指Halcon中最基础、最底层的函数(即你看不到它的代码实现),一个算子只有一句话,例如threshold算子。 小函数:由多个算子组合成的函数,我习惯称为小函数。其特点是,可以通过鼠标右键单击“显示函数”打开。如下图: 通常,Halcon代 阅读全文
posted @ 2019-04-01 19:32 xh6300 阅读(7983) 评论(7) 推荐(1) 编辑
摘要: 针对Halcon中一维码和二维码的解码,我分别写了两篇文章,参见: 《Halcon的一维条码解码步骤和解码技巧》:https://www.cnblogs.com/xh6300/p/10484995.html 《Halcon的二维码解码步骤和解码技巧》:https://www.cnblogs.com/ 阅读全文
posted @ 2019-04-01 19:21 xh6300 阅读(3282) 评论(0) 推荐(0) 编辑
摘要: 1、Halcon本地函数封装和修改 详见我的另一篇文章:《Halcon小函数的封装和代码导出》。 2、公用函数的封装和修改 选中代码行,右键“创建新函数”,在弹出的窗口中的下拉框中选择“HDevelop函数文件(.hdvp)”: 该函数的默认保存的路径为: 编写好以后,只要在procedures目录 阅读全文
posted @ 2019-04-01 19:13 xh6300 阅读(2363) 评论(0) 推荐(0) 编辑
摘要: 本节的内容主要是对大量相关算子的掌握。 1、图像的常规运算 add_image 使两张图像相加 sub_image 图像作差 mult_image 图像相乘 div_image 图像相除 abs_image 计算一张图像的绝对值(图像的阈值范围不一定都是0-255,“灰度值”可能为负) invert 阅读全文
posted @ 2019-04-01 18:01 xh6300 阅读(2829) 评论(0) 推荐(0) 编辑
摘要: 1、跟其他语言不完全一致的表达符号 赋值符号 := 引号 ' ' (一律是单引号) 求商求余 / % (一个整数除以另一个数,如何使商是实型的?即浮点型) 逻辑运算 and or not xor(异或) 逻辑真假 true false 等于 = 和 == 都行 不等于 != 和 # 都行 2、程序控 阅读全文
posted @ 2019-04-01 17:38 xh6300 阅读(7468) 评论(0) 推荐(0) 编辑
摘要: 模板匹配与定位配准通常是相辅相成的。 通常来说,如果不考虑180°的翻转,源和目标各有“一个点,一个倾斜角度”就可以用于定位配准。 图像配准:通常指定一幅图像为参考图像,另一幅图像为待配准图像,配准的目的是通过某种几何变换使待配准图像与参考图像的坐标达到一致。 从算子vector_angle_to_ 阅读全文
posted @ 2019-04-01 17:04 xh6300 阅读(6329) 评论(2) 推荐(0) 编辑
摘要: 仿射变换,是指在几何中,一个向量空间进行一次线性变换并接上一个平移,变换为另一个向量空间。保守估计80%以上的视觉项目都需要用到仿射变换。 仿射变换是平移、翻转、旋转、缩放、错切这五种变换的组合。 其中最常见的三种为:平移、旋转、缩放。 仿射变换的理解和使用,详情参见我以前写的一篇文章: http: 阅读全文
posted @ 2019-04-01 16:22 xh6300 阅读(2802) 评论(0) 推荐(0) 编辑
摘要: 一、直线和圆拟合概述 直线和圆的拟合,是视觉项目中非常常见的需求,但是对新手来说,在Halcon中实现却比较困难。 其基本思路都是: ① 分割出边缘,得到XLD(gen_contours_skeleton_xld、edges_sub_pix等) ② 将XLD进行分割、筛选(segment_conto 阅读全文
posted @ 2019-04-01 15:47 xh6300 阅读(9446) 评论(1) 推荐(0) 编辑
摘要: 一、阈值分割 阈值分割算子众多: threshold :这是最基本最简单的阈值算子。 binary_threshold :它是自动阈值算子,自动选出暗(dark)的区域,或者自动选出亮(light)的区域,理解起来并没有难度。 dyn_threshold :该算子和dual_threshold和va 阅读全文
posted @ 2019-03-29 23:11 xh6300 阅读(7652) 评论(0) 推荐(0) 编辑
摘要: 问题提出:求下图中楔形缺口到圆心的最短距离。 【涉及知识点讲解】 一、Region特征算子 在图形窗口中用鼠标单击选中某个Region,然后点击菜单栏的“打开特征检测”图标,就可以看到当前Region的所有特征了。 由特征检测页面可知,Region的特征很多,如何知道用什么算子可以获得这些特征呢? 阅读全文
posted @ 2019-03-29 22:43 xh6300 阅读(5570) 评论(0) 推荐(0) 编辑
摘要: 一、图像获取与采集 1、本地图片读取 ① 单张读取 直接传入图片路径即可,可以用绝对路径,也可以用相对路径: read_image (Image, 'C:/Users/Administrator/Desktop/1.png') ② 编号连续的图片读取(000、001、002……) * 分别读取003 阅读全文
posted @ 2019-03-29 21:10 xh6300 阅读(6669) 评论(0) 推荐(0) 编辑
摘要: 1、Halcon是什么?如何初步了解Halcon? 这点我讲得不太好,不如给大家看看三个链接: ① Halcon官方网站:https://www.mvtec.com/products/halcon/ ② Halcon百科介绍:https://baike.baidu.com/item/HALCON%E 阅读全文
posted @ 2019-03-29 17:07 xh6300 阅读(8745) 评论(0) 推荐(1) 编辑
摘要: 一、二维码简介 1 . 类型多样,常见的有QR Code二维码、 Data Matrix二维码等。 2.高密度编码,信息容量大。 3.容错能力强,具有纠错功能:二维码因穿孔、污损等引起局部损坏时,照样可以正确得到识读,损毁面积达50%仍可恢复信息。 4.译码可靠性高:它比普通条码译码错误率百万分之二 阅读全文
posted @ 2019-03-07 20:32 xh6300 阅读(26228) 评论(0) 推荐(0) 编辑
摘要: 一、图像预处理和条码增强 对比度太低:scale_image(或使用外部程序scale_image_range),增强图像的对比度。 图像模糊:emphasize锐化图像,使条码看起来更清晰。 深色背景上读取浅色条码:invert_image反转图像。 二、解码涉及的主要算子 read_image 阅读全文
posted @ 2019-03-06 18:08 xh6300 阅读(13236) 评论(0) 推荐(2) 编辑
摘要: 极坐标想必学过高中数学的人都听过,一般的坐标系中用(x, y)值来描述一个点的位置,而在极坐标系中,则使用到原点的距离ρ和夹角θ来描述该点的位置。 我很早就接触了Photoshop,知道Photoshop里面有个极坐标的扭曲滤镜,如下图: 明白了极坐标(正向、反向)的大致效果是:能将矩形图案变成圆形 阅读全文
posted @ 2019-02-20 15:11 xh6300 阅读(2653) 评论(0) 推荐(0) 编辑
摘要: Halcon可以操作普通文本文件,也可以操作二进制文件。如下图所示,只需要设置“FileType”参数的取值即可明确是操作文本文件还是二进制文件: 下面的程序是操作一个.txt文本文件的完整代码: 第15行close_file 之后,1.txt中内容为: 阅读全文
posted @ 2019-02-14 17:32 xh6300 阅读(12890) 评论(2) 推荐(1) 编辑
摘要: 本文涉及面较广,因此很难在所有方面都讲解得很详细,故适合具有一定Halcon开发经验的人阅读。 1、Halcon二次开发的两种方式 ① 使用C#的语法方式逐句改写Halcon代码 优点:各种变量的类型清楚,可读性强,改写后代码行数几乎不会增加多少。 缺点:改写工作量大,容易出错,如果Halcon代码 阅读全文
posted @ 2019-01-26 11:10 xh6300 阅读(28265) 评论(13) 推荐(11) 编辑