摘要: 2021年春刚换了新工作,目前在苏州从事光伏行业,新工作的头几个月比较忙,博客更新很慢,还望大家海涵。 后续会适当加大更新频率,博客将一如既往坚持原创、坚持实用。(博客文章若无特别声明,即为原创) 从2015年入行算起,从事机器视觉行业已7年,“自动化 + 控制工程”专业出身,熟悉相机、光源、镜头的 阅读全文
posted @ 2020-05-09 12:11 xh6300 阅读(1390) 评论(15) 推荐(0) 编辑
摘要: 在Halcon中,区域的特征Roundness(圆度)和Circularity(圆度)虽然都用于描述区域与圆形之间的相似程度,但它们在计算方法和应用上存在一些区别。还是从帮助文档着手: 1、Roundness(圆度) 机翻: 计算方法:Roundness通常通过计算区域轮廓上各点到区域中心的平均距离 阅读全文
posted @ 2024-07-10 19:15 xh6300 阅读(681) 评论(0) 推荐(1) 编辑
摘要: sort_region是个很有用的算子,在对多个Region进行排序时,经常用到。 算子含义:根据区域的相对位置对区域进行排序。(Sorting of regions with respect to their relative position.) 算子签名:sort_region(Regions 阅读全文
posted @ 2022-08-10 17:33 xh6300 阅读(5476) 评论(0) 推荐(1) 编辑
摘要: “浓淡补正”是基恩士视觉的一个很强大的算法工具。使用“浓淡补正”的预处理,可以消除工件表面的光泽和阴影,仅抽取污点及瑕疵。(如下图) 至于它的实现原理,网上搜不到相关资料。不过根据它的实现效果,能大致窥见它的原理:排除背景渐变的浓淡变化,只抽取对比度急剧变化的部分。 看到这句话,想必有些人已经想到了 阅读全文
posted @ 2022-07-13 19:35 xh6300 阅读(3280) 评论(0) 推荐(0) 编辑
摘要: 仿射变换是平移、翻转、旋转、缩放、错切这五种变换的组合。 错切变换就是上图中的第5种。 图像的错切实际上是平面景物在投影平面上的非垂直投影。错切使图像中的图形产生扭变,其一般有两种情况:水平方向错切、垂直方向错切。(如下图所示) 具体数学解释,可参考网上的这篇博客:https://blog.csdn 阅读全文
posted @ 2022-07-07 19:19 xh6300 阅读(1190) 评论(0) 推荐(0) 编辑
摘要: 白平衡,字面意思即白色的平衡。白平衡是描述显示器中红、绿、蓝三基色混合生成后白色(无彩色)准确度的一项指标。 如果用白平衡准确的彩色相机拍摄白纸或者灰板(不能过曝),生成的图像不应该存在偏色,而应该是纯粹的灰色。灰色RGB图像的R、G、B通道图是一模一样的,如下: 白 色:255, 255, 255 阅读全文
posted @ 2022-05-04 14:07 xh6300 阅读(853) 评论(2) 推荐(1) 编辑
摘要: 常见的特征筛选算子有select_shape和select_shape_xld。 其中,select_shape用于筛选Region,select_shape_xld用于筛选Xld。实际项目中,经常需要根据行、列来筛选符合条件的Region或者Xld。(如下图) 特征'row'是由算子area_ce 阅读全文
posted @ 2022-03-31 18:26 xh6300 阅读(863) 评论(0) 推荐(0) 编辑
摘要: 优化时间是算法优化中永恒的主题。形态学算子是外观检测中最常用的算子,因此,研究它们的时间开销有很强的现实意义。 有如下图的五种类型的区域: ① CellOctaReg :区域面积很大,轮廓简单。(典型一) ② WhiteGridWholeReg :区域面积大,轮廓复杂。(典型二) ③ DefiMGP 阅读全文
posted @ 2021-11-26 19:29 xh6300 阅读(42) 评论(0) 推荐(0) 编辑
摘要: 做技术的也需要文档写得漂亮。软件类文档是给人看的,因此“可读性高”是好文档的重要标准之一。要想可读性高,通常需要注意以下几点: ① 标题、小标题、正文的字号、字重(文字粗细)应该有所区别。 ② 正文的字号、行距合适,重点内容要想办法使之突出,方便阅读。 ③ 软件操作类的文档,图片必不可少,要图文并茂 阅读全文
posted @ 2021-10-22 09:55 xh6300 阅读(463) 评论(0) 推荐(0) 编辑
摘要: 大家在网上搜索“fit_line_contour_xld”应该很容易就能发现这样的几行字:(没耐心看的话,可以直接看文末三行研究结论) regression:回归,标准的最小二乘法拟合 huber:加权的最小二乘法拟合,异常值的影响被减小基于Huber方法 tukey:加权的最小二乘法拟合,异常值的 阅读全文
posted @ 2021-10-14 22:06 xh6300 阅读(2584) 评论(0) 推荐(1) 编辑
摘要: 下面是一张色相渐变图。底部的数值是它在Halcon中对应的色相值。 色相H值范围:0~255 其中纯红为0或者255,这说明不同颜色的色相值其实是一个首尾相连的闭合环(色轮)。(Photoshop中为了突出这一特性,它的色相取值范围是0~360) 如果在Halcon中要筛选红色,范围可能要写2段,例 阅读全文
posted @ 2021-08-16 15:01 xh6300 阅读(1081) 评论(0) 推荐(1) 编辑
摘要: 假设有一个元组 a := [566, 52, -15, 50, -18, 0],如何将里面的负数都置为0,其他元素不变呢? 常见的思路是对元组的元素进行遍历。如果发现某个元素小于0,就强制给它赋值为0 。 其实Halcon里面有一些算子组合,可以更简洁地实现这个目的。 1 a := [566, 52 阅读全文
posted @ 2020-09-11 17:17 xh6300 阅读(969) 评论(2) 推荐(1) 编辑
摘要: 进行OCR的时候,同一个字符,通常需要很多字符小图,这样图片多了,才能训练出健壮的分类器。如何自动化地执行该过程呢?我提供一种思路。 待训练的图片集如下: 其中,“文件夹0”和“文件夹1”中有多张图片,例如“文件夹1”中的图片是这样的(图片名称第一个字符都是“1”): 训练OCR分类器的完整代码如下 阅读全文
posted @ 2020-07-28 18:41 xh6300 阅读(5172) 评论(2) 推荐(3) 编辑
摘要: 一、重要算子 OCR分类器其实有很多,如下图所示。但是通常mlp分类器效果较好,使用较多。 主要算子如下: ① append_ocr_trainf(Character, Image : : Class, TrainingFile : ) 四个参数分别是:字符Region、字符Image、字符文本、O 阅读全文
posted @ 2020-07-28 17:58 xh6300 阅读(20466) 评论(10) 推荐(7) 编辑
摘要: Halcon中Image有多种像素表示方式,这方面网上找到的资料比较少,有一张大恒图像培训的文档中提到过,感觉描述比较准确: 里面有四种类型比较类似:uint2、int1、int2、int4。 区分起来很简单,带1表示8位,带2表示16位,带4表示32位,带u表示无符号(即无“负号”这种符号) 我用 阅读全文
posted @ 2019-12-27 16:22 xh6300 阅读(6436) 评论(1) 推荐(1) 编辑
摘要: 锐化图像是摄影中的一步重要操作。 锐化是通过颜色提纯达到锐化的目的。一旦锐化过度,照片很容易就会出现不自然的色斑,或溢色效果。 我们以Photoshop中的“USM锐化滤镜”为例:(为了使效果明显,我这里用了较大的锐化值) 锐化结果:可以发现鼻翼、眉毛下面、上嘴唇上面的皮肤都出现了明显的黄色色块。这 阅读全文
posted @ 2019-12-26 17:46 xh6300 阅读(2318) 评论(0) 推荐(1) 编辑
摘要: 在图像滤波和形态学运算中,我们用得最多的是圆形结构元素(circle)或者方形结构元素,例如: ① 圆形结构元素 opening_circle (Region, RegionOpening, 3.5)erosion_circle (Region, RegionErosion, 3.5) ② 方形结构 阅读全文
posted @ 2019-11-23 12:01 xh6300 阅读(2490) 评论(4) 推荐(0) 编辑
摘要: 用Halcon解码时,如果一张图里面有多个码,它通常可以把这些码都解出来,并且生成对应的解码结果字符串元组(也就是下面的DecodedDataStrings),如果有多个码,那么该元组就有多个元素。 ① find_bar_code(Image : SymbolRegions : BarCodeHan 阅读全文
posted @ 2019-11-22 18:12 xh6300 阅读(1600) 评论(4) 推荐(1) 编辑
摘要: 我们都知道,HDevelop中,在菜单栏“助手”中,可以通过“Matching”助手辅助模板匹配的建模等操作。 “基于形状”的模板匹配, 主要有三种类型:find_shape_model、find_scaled_shape_model、find_aniso_shape_model。 那么这三种类型有 阅读全文
posted @ 2019-09-09 16:17 xh6300 阅读(6604) 评论(5) 推荐(4) 编辑
摘要: 一、select_region_point select_region_point(Regions:DestRegions:row,column:) 算子含义:选择包含给定像素的所有区域。 Regions是待测试的Region集合,DestRegions是包含给定像素点的所有区域集合。 举例如下: 阅读全文
posted @ 2019-09-02 17:14 xh6300 阅读(1554) 评论(1) 推荐(0) 编辑