摘要:一场突如其来的疫情,我在老家待了70多天,所以博客也许久未曾更新,后续我会适当加大更新力度。 我本人从事机器视觉行业4年了,自动化专业出身,熟悉相机、光源、镜头的选型,对光学、摄影以及摄影后期均有一定的了解。 目前主要使用Halcon和C#做2D方面的视觉项目开发,偏重于缺陷检测方面的算法。 设计图 阅读全文
posted @ 2020-05-09 12:11 xh6300 阅读(726) 评论(13) 推荐(0) 编辑
摘要:假设有一个元组 a := [566, 52, -15, 50, -18, 0],如何将里面的负数都置为0,其他元素不变呢? 常见的思路是对元组的元素进行遍历。如果发现某个元素小于0,就强制给它赋值为0 。 其实Halcon里面有一些算子组合,可以更简洁地实现这个目的。 1 a := [566, 52 阅读全文
posted @ 2020-09-11 17:17 xh6300 阅读(327) 评论(1) 推荐(0) 编辑
摘要:进行OCR的时候,同一个字符,通常需要很多字符小图,这样图片多了,才能训练出健壮的分类器。如何自动化地执行该过程呢?我提供一种思路。 待训练的图片集如下: 其中,“文件夹0”和“文件夹1”中有多张图片,例如“文件夹1”中的图片是这样的(图片名称第一个字符都是“1”): 训练OCR分类器的完整代码如下 阅读全文
posted @ 2020-07-28 18:41 xh6300 阅读(1539) 评论(2) 推荐(1) 编辑
摘要:一、重要算子 OCR分类器其实有很多,如下图所示。但是通常mlp分类器效果较好,使用较多。 主要算子如下: ① append_ocr_trainf(Character, Image : : Class, TrainingFile : ) 四个参数分别是:字符Region、字符Image、字符文本、O 阅读全文
posted @ 2020-07-28 17:58 xh6300 阅读(3347) 评论(3) 推荐(2) 编辑
摘要:一场突如其来的疫情,我在老家待了70多天,所以博客也许久未曾更新,后续我会适当加大更新力度。 我本人从事机器视觉行业4年了,自动化专业出身,熟悉相机、光源、镜头的选型,对光学、摄影以及摄影后期均有一定的了解。 目前主要使用Halcon和C#做2D方面的视觉项目开发,偏重于缺陷检测方面的算法。 设计图 阅读全文
posted @ 2020-05-09 12:11 xh6300 阅读(726) 评论(13) 推荐(0) 编辑
摘要:Halcon中Image有多种像素表示方式,这方面网上找到的资料比较少,有一张大恒图像培训的文档中提到过,感觉描述比较准确: 里面有四种类型比较类似:uint2、int1、int2、int4。 区分起来很简单,带1表示8位,带2表示16位,带4表示32位,带u表示无符号(即无“负号”这种符号) 我用 阅读全文
posted @ 2019-12-27 16:22 xh6300 阅读(2346) 评论(1) 推荐(1) 编辑
摘要:锐化图像是摄影中的一步重要操作。 锐化是通过颜色提纯达到锐化的目的。一旦锐化过度,照片很容易就会出现不自然的色斑,或溢色效果。 我们以Photoshop中的“USM锐化滤镜”为例:(为了使效果明显,我这里用了较大的锐化值) 锐化结果:可以发现鼻翼、眉毛下面、上嘴唇上面的皮肤都出现了明显的黄色色块。这 阅读全文
posted @ 2019-12-26 17:46 xh6300 阅读(938) 评论(0) 推荐(0) 编辑
摘要:在图像滤波和形态学运算中,我们用得最多的是圆形结构元素(circle)或者方形结构元素,例如: ① 圆形结构元素 opening_circle (Region, RegionOpening, 3.5)erosion_circle (Region, RegionErosion, 3.5) ② 方形结构 阅读全文
posted @ 2019-11-23 12:01 xh6300 阅读(1478) 评论(4) 推荐(0) 编辑
摘要:用Halcon解码时,如果一张图里面有多个码,它通常可以把这些码都解出来,并且生成对应的解码结果字符串元组(也就是下面的DecodedDataStrings),如果有多个码,那么该元组就有多个元素。 ① find_bar_code(Image : SymbolRegions : BarCodeHan 阅读全文
posted @ 2019-11-22 18:12 xh6300 阅读(819) 评论(4) 推荐(1) 编辑
摘要:我们都知道,HDevelop中,在菜单栏“助手”中,可以通过“Matching”助手辅助模板匹配的建模等操作。 “基于形状”的模板匹配, 主要有三种类型:find_shape_model、find_scaled_shape_model、find_aniso_shape_model。 那么这三种类型有 阅读全文
posted @ 2019-09-09 16:17 xh6300 阅读(2497) 评论(5) 推荐(1) 编辑
摘要:一、select_region_point select_region_point(Regions:DestRegions:row,column:) 算子含义:选择包含给定像素的所有区域。 Regions是待测试的Region集合,DestRegions是包含给定像素点的所有区域集合。 举例如下: 阅读全文
posted @ 2019-09-02 17:14 xh6300 阅读(731) 评论(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 阅读(2759) 评论(1) 推荐(0) 编辑
摘要:项目需求:要求圆环外圈毛刺的凸出高度不得超过20像素,如超过判为NG。 算法分析:按照一般的思路,应该是先将外圈拟合成一个圆;然后将这个工件阈值化,提取工件区域;然后用该区域减去之前拟合的圆,剩下的区域就是毛刺部分了。那么什么样特征的毛刺算超标的呢?很显然,如果仅仅用'area'、'inner_ra 阅读全文
posted @ 2019-08-01 11:40 xh6300 阅读(1318) 评论(6) 推荐(0) 编辑
摘要:注:这篇文章我四年前发布在其他地方,现在移过来。 如果你对相机只有很少了解,那么看这篇文章再好不过啦,我结合很多资料,力图用最通俗易懂的方式进行讲解。 相机拍摄时最重要的3个参数就是——光圈、快门、ISO次重要的参数有——焦距、景深、曝光 在介绍光圈、快门、ISO之前,必须先介绍曝光。曝光准确的照片 阅读全文
posted @ 2019-04-11 00:01 xh6300 阅读(10752) 评论(3) 推荐(0) 编辑
摘要:一、Halcon小函数的封装和修改 1、名词解释: 算子:指Halcon中最基础、最底层的函数(即你看不到它的代码实现),一个算子只有一句话,例如threshold算子。 小函数:由多个算子组合成的函数,我习惯称为小函数。其特点是,可以通过鼠标右键单击“显示函数”打开。如下图: 通常,Halcon代 阅读全文
posted @ 2019-04-01 19:32 xh6300 阅读(5225) 评论(5) 推荐(0) 编辑
摘要:针对Halcon中一维码和二维码的解码,我分别写了两篇文章,参见: 《Halcon的一维条码解码步骤和解码技巧》:https://www.cnblogs.com/xh6300/p/10484995.html 《Halcon的二维码解码步骤和解码技巧》:https://www.cnblogs.com/ 阅读全文
posted @ 2019-04-01 19:21 xh6300 阅读(1656) 评论(0) 推荐(0) 编辑
摘要:1、Halcon本地函数封装和修改 详见我的另一篇文章:《Halcon小函数的封装和代码导出》。 2、公用函数的封装和修改 选中代码行,右键“创建新函数”,在弹出的窗口中的下拉框中选择“HDevelop函数文件(.hdvp)”: 该函数的默认保存的路径为: 编写好以后,只要在procedures目录 阅读全文
posted @ 2019-04-01 19:13 xh6300 阅读(1145) 评论(0) 推荐(0) 编辑
摘要:本节的内容主要是对大量相关算子的掌握。 1、图像的常规运算 add_image 使两张图像相加 sub_image 图像作差 mult_image 图像相乘 div_image 图像相除 abs_image 计算一张图像的绝对值(图像的阈值范围不一定都是0-255,“灰度值”可能为负) invert 阅读全文
posted @ 2019-04-01 18:01 xh6300 阅读(1469) 评论(0) 推荐(0) 编辑
摘要:1、跟其他语言不完全一致的表达符号 赋值符号 := 引号 ' ' (一律是单引号) 求商求余 / % (一个整数除以另一个数,如何使商是实型的?即浮点型) 逻辑运算 and or not xor(异或) 逻辑真假 true false 等于 = 和 == 都行 不等于 != 和 # 都行 2、程序控 阅读全文
posted @ 2019-04-01 17:38 xh6300 阅读(3959) 评论(0) 推荐(0) 编辑
摘要:模板匹配与定位配准通常是相辅相成的。 通常来说,如果不考虑180°的翻转,源和目标各有“一个点,一个倾斜角度”就可以用于定位配准。 图像配准:通常指定一幅图像为参考图像,另一幅图像为待配准图像,配准的目的是通过某种几何变换使待配准图像与参考图像的坐标达到一致。 从算子vector_angle_to_ 阅读全文
posted @ 2019-04-01 17:04 xh6300 阅读(3658) 评论(2) 推荐(0) 编辑
摘要:仿射变换,是指在几何中,一个向量空间进行一次线性变换并接上一个平移,变换为另一个向量空间。保守估计80%以上的视觉项目都需要用到仿射变换。 仿射变换是平移、翻转、旋转、缩放、错切这五种变换的组合。 其中最常见的三种为:平移、旋转、缩放。 仿射变换的理解和使用,详情参见我以前写的一篇文章: http: 阅读全文
posted @ 2019-04-01 16:22 xh6300 阅读(1564) 评论(0) 推荐(0) 编辑