摘要: 2021年春刚换了新工作,目前在苏州从事光伏行业,新工作的头几个月比较忙,博客更新很慢,还望大家海涵。 后续会适当加大更新频率,博客将一如既往坚持原创、坚持实用。 我本人从事机器视觉行业近6年,自动化专业出身,熟悉相机、光源、镜头的选型,对光学、摄影以及摄影后期均有一定的了解。 目前主要使用Halc 阅读全文
posted @ 2020-05-09 12:11 xh6300 阅读(923) 评论(13) 推荐(0) 编辑
摘要: 做技术的也需要文档写得漂亮。软件类文档是给人看的,因此“可读性高”是好文档的重要标准之一。要想可读性高,通常需要注意以下几点: ① 标题、小标题、正文的字号、字重(文字粗细)应该有所区别。 ② 正文的字号、行距合适,重点内容要想办法使之突出,方便阅读。 ③ 软件操作类的文档,图片必不可少,要图文并茂 阅读全文
posted @ 2021-10-22 09:55 xh6300 阅读(118) 评论(0) 推荐(0) 编辑
摘要: 大家在网上搜索“fit_line_contour_xld”应该很容易就能发现这样的几行字:(没耐心看的话,可以直接看文末三行研究结论) regression:回归,标准的最小二乘法拟合 huber:加权的最小二乘法拟合,异常值的影响被减小基于Huber方法 tukey:加权的最小二乘法拟合,异常值的 阅读全文
posted @ 2021-10-14 22:06 xh6300 阅读(386) 评论(0) 推荐(1) 编辑
摘要: 下面是一张色相渐变图。底部的数值是它在Halcon中对应的色相值。 色相H值范围:0~255 其中纯红为0或者255,这说明不同颜色的色相值其实是一个首尾相连的闭合环(色轮)。(Photoshop中为了突出这一特性,它的色相取值范围是0~360) 如果在Halcon中要筛选红色,范围可能要写2段,例 阅读全文
posted @ 2021-08-16 15:01 xh6300 阅读(215) 评论(0) 推荐(0) 编辑
摘要: 假设有一个元组 a := [566, 52, -15, 50, -18, 0],如何将里面的负数都置为0,其他元素不变呢? 常见的思路是对元组的元素进行遍历。如果发现某个元素小于0,就强制给它赋值为0 。 其实Halcon里面有一些算子组合,可以更简洁地实现这个目的。 1 a := [566, 52 阅读全文
posted @ 2020-09-11 17:17 xh6300 阅读(548) 评论(1) 推荐(1) 编辑
摘要: 进行OCR的时候,同一个字符,通常需要很多字符小图,这样图片多了,才能训练出健壮的分类器。如何自动化地执行该过程呢?我提供一种思路。 待训练的图片集如下: 其中,“文件夹0”和“文件夹1”中有多张图片,例如“文件夹1”中的图片是这样的(图片名称第一个字符都是“1”): 训练OCR分类器的完整代码如下 阅读全文
posted @ 2020-07-28 18:41 xh6300 阅读(3029) 评论(2) 推荐(2) 编辑
摘要: 一、重要算子 OCR分类器其实有很多,如下图所示。但是通常mlp分类器效果较好,使用较多。 主要算子如下: ① append_ocr_trainf(Character, Image : : Class, TrainingFile : ) 四个参数分别是:字符Region、字符Image、字符文本、O 阅读全文
posted @ 2020-07-28 17:58 xh6300 阅读(8302) 评论(3) 推荐(3) 编辑
摘要: 2021年春刚换了新工作,目前在苏州从事光伏行业,新工作的头几个月比较忙,博客更新很慢,还望大家海涵。 后续会适当加大更新频率,博客将一如既往坚持原创、坚持实用。 我本人从事机器视觉行业近6年,自动化专业出身,熟悉相机、光源、镜头的选型,对光学、摄影以及摄影后期均有一定的了解。 目前主要使用Halc 阅读全文
posted @ 2020-05-09 12:11 xh6300 阅读(923) 评论(13) 推荐(0) 编辑
摘要: Halcon中Image有多种像素表示方式,这方面网上找到的资料比较少,有一张大恒图像培训的文档中提到过,感觉描述比较准确: 里面有四种类型比较类似:uint2、int1、int2、int4。 区分起来很简单,带1表示8位,带2表示16位,带4表示32位,带u表示无符号(即无“负号”这种符号) 我用 阅读全文
posted @ 2019-12-27 16:22 xh6300 阅读(3647) 评论(1) 推荐(1) 编辑
摘要: 锐化图像是摄影中的一步重要操作。 锐化是通过颜色提纯达到锐化的目的。一旦锐化过度,照片很容易就会出现不自然的色斑,或溢色效果。 我们以Photoshop中的“USM锐化滤镜”为例:(为了使效果明显,我这里用了较大的锐化值) 锐化结果:可以发现鼻翼、眉毛下面、上嘴唇上面的皮肤都出现了明显的黄色色块。这 阅读全文
posted @ 2019-12-26 17:46 xh6300 阅读(1439) 评论(0) 推荐(0) 编辑
摘要: 在图像滤波和形态学运算中,我们用得最多的是圆形结构元素(circle)或者方形结构元素,例如: ① 圆形结构元素 opening_circle (Region, RegionOpening, 3.5)erosion_circle (Region, RegionErosion, 3.5) ② 方形结构 阅读全文
posted @ 2019-11-23 12:01 xh6300 阅读(1933) 评论(4) 推荐(0) 编辑
摘要: 用Halcon解码时,如果一张图里面有多个码,它通常可以把这些码都解出来,并且生成对应的解码结果字符串元组(也就是下面的DecodedDataStrings),如果有多个码,那么该元组就有多个元素。 ① find_bar_code(Image : SymbolRegions : BarCodeHan 阅读全文
posted @ 2019-11-22 18:12 xh6300 阅读(1090) 评论(4) 推荐(1) 编辑
摘要: 我们都知道,HDevelop中,在菜单栏“助手”中,可以通过“Matching”助手辅助模板匹配的建模等操作。 “基于形状”的模板匹配, 主要有三种类型:find_shape_model、find_scaled_shape_model、find_aniso_shape_model。 那么这三种类型有 阅读全文
posted @ 2019-09-09 16:17 xh6300 阅读(3456) 评论(5) 推荐(2) 编辑
摘要: 一、select_region_point select_region_point(Regions:DestRegions:row,column:) 算子含义:选择包含给定像素的所有区域。 Regions是待测试的Region集合,DestRegions是包含给定像素点的所有区域集合。 举例如下: 阅读全文
posted @ 2019-09-02 17:14 xh6300 阅读(1037) 评论(1) 推荐(0) 编辑
摘要: Halcon中线条提取的算子主要有: lines_color(Image : Lines : Sigma, Low, High, ExtractWidth, CompleteJunctions : ) lines_facet(Image : Lines : MaskSize, Low, High, 阅读全文
posted @ 2019-08-30 20:01 xh6300 阅读(3987) 评论(1) 推荐(0) 编辑
摘要: 项目需求:要求圆环外圈毛刺的凸出高度不得超过20像素,如超过判为NG。 算法分析:按照一般的思路,应该是先将外圈拟合成一个圆;然后将这个工件阈值化,提取工件区域;然后用该区域减去之前拟合的圆,剩下的区域就是毛刺部分了。那么什么样特征的毛刺算超标的呢?很显然,如果仅仅用'area'、'inner_ra 阅读全文
posted @ 2019-08-01 11:40 xh6300 阅读(1631) 评论(8) 推荐(0) 编辑
摘要: 注:这篇文章我四年前发布在其他地方,现在移过来。 如果你对相机只有很少了解,那么看这篇文章再好不过啦,我结合很多资料,力图用最通俗易懂的方式进行讲解。 相机拍摄时最重要的3个参数就是——光圈、快门、ISO次重要的参数有——焦距、景深、曝光 在介绍光圈、快门、ISO之前,必须先介绍曝光。曝光准确的照片 阅读全文
posted @ 2019-04-11 00:01 xh6300 阅读(16507) 评论(3) 推荐(0) 编辑
摘要: 一、Halcon小函数的封装和修改 1、名词解释: 算子:指Halcon中最基础、最底层的函数(即你看不到它的代码实现),一个算子只有一句话,例如threshold算子。 小函数:由多个算子组合成的函数,我习惯称为小函数。其特点是,可以通过鼠标右键单击“显示函数”打开。如下图: 通常,Halcon代 阅读全文
posted @ 2019-04-01 19:32 xh6300 阅读(6428) 评论(7) 推荐(1) 编辑
摘要: 针对Halcon中一维码和二维码的解码,我分别写了两篇文章,参见: 《Halcon的一维条码解码步骤和解码技巧》:https://www.cnblogs.com/xh6300/p/10484995.html 《Halcon的二维码解码步骤和解码技巧》:https://www.cnblogs.com/ 阅读全文
posted @ 2019-04-01 19:21 xh6300 阅读(2338) 评论(0) 推荐(0) 编辑
摘要: 1、Halcon本地函数封装和修改 详见我的另一篇文章:《Halcon小函数的封装和代码导出》。 2、公用函数的封装和修改 选中代码行,右键“创建新函数”,在弹出的窗口中的下拉框中选择“HDevelop函数文件(.hdvp)”: 该函数的默认保存的路径为: 编写好以后,只要在procedures目录 阅读全文
posted @ 2019-04-01 19:13 xh6300 阅读(1570) 评论(0) 推荐(0) 编辑
摘要: 本节的内容主要是对大量相关算子的掌握。 1、图像的常规运算 add_image 使两张图像相加 sub_image 图像作差 mult_image 图像相乘 div_image 图像相除 abs_image 计算一张图像的绝对值(图像的阈值范围不一定都是0-255,“灰度值”可能为负) invert 阅读全文
posted @ 2019-04-01 18:01 xh6300 阅读(1999) 评论(0) 推荐(0) 编辑