摘要:
其他“数制转换”和“格式化输出”可参考:http://www.ihalcon.com/read-2032-1.html
阅读全文
posted @ 2018-11-27 17:58
xh6300
阅读(12446)
推荐(2)
摘要:
以Halcon为例,一般解码的步骤为:创建解码模型——设置解码参数——执行解码——清除模型回收内存。如下所示: 我们一般会在“设置解码参数”这个步骤里面做文章。例如设置多个参数,以达到解码成功率高且解码速度快的目的。这个只是常规思路,我今天并不想讲这个,而且这种思路有局限:有时候无论你参数设置得多么
阅读全文
posted @ 2018-10-18 11:58
xh6300
阅读(6899)
推荐(1)
摘要:
例图: 完整算法: 结果: 步骤分析: ① 图像三角形主要由3根直线构成; ② 阈值化、skeleton提取骨架、将骨架(region)转为xld、将xld打散分割、筛选xld得到3条主xld、将这3条xld拟合成3条直线。 效果分析: 这种算法虽然步骤简单,但是其实鲁棒性并不好。主要风险在“筛选x
阅读全文
posted @ 2018-10-13 10:40
xh6300
阅读(18145)
推荐(1)
摘要:
gen_empty_obj 算子解释: Create an empty object tuple。 其算子签名为: gen_empty_obj( : EmptyObject : : ) 那么有人要问:创建一个空的object有什么用呢? 其实gen_empty_obj 的作用类似于面向对象编程中的“
阅读全文
posted @ 2018-09-05 17:23
xh6300
阅读(3339)
推荐(0)
摘要:
Json数据解析主要使用开源的类库Newtonsoft.Json来进行解析。 具体参考: https://blog.csdn.net/sajiazaici/article/details/77647625 如果有时候遇到Json数组,即同一种数据结构多次出现,例如: [{"name":"abc","
阅读全文
posted @ 2018-07-30 15:33
xh6300
阅读(505)
推荐(0)
摘要:
首先吐槽一句,官方的demos写的真的不好,坑爹啊。对于小白来说,开发官方demos为我所用太难了。为什么呢?因为它Dalsa的DALSA.SaperaLT.SapClassBasic.dll中,不仅有采图的代码库,还有用于显示的UI库(它不是用Winform的PictureBox显示图片,而是用它
阅读全文
posted @ 2018-06-21 17:29
xh6300
阅读(22253)
推荐(5)
摘要:
有经验的机器视觉工程师都会认可这样一句话:机器视觉项目的成败在于能否得到一张打光优秀的图片。如果采集到的图片本身“质量”很差,那么接来下的图像处理工作就会困难重重。 由于项目的需求以及光源厂商的努力,目前机器视觉光源的类型可以说十分丰富,例如条光、背光、平行背光、同轴光、点光、隧道光、碗光、环形光、
阅读全文
posted @ 2017-09-23 22:56
xh6300
阅读(18388)
推荐(7)
摘要:
Halcon中如何通过灰度线性映射增强图片对比度呢?不急,我先讲点其他的。 如果你用过Photoshop,那么想必对增强图像的对比度很熟悉。在Photoshop中,我们对下面这张图执行“色阶”调整: 执行“色阶”调整:可以观察到图片的对比度明显增强。(白的更白,黑的更黑了) 它的原理是这样的:将原图
阅读全文
posted @ 2017-09-12 22:20
xh6300
阅读(6737)
推荐(1)
摘要:
对于很多小项目来说,不需要搭建专门的数据库系统(例如用SQLite搭建本地数据库),这时可以用ini配置文件实现一个最基本的数据库,实现数据库最基本的增删改查功能。 ini配置文件的用法参考我以前写的文章:http://www.cnblogs.com/xh6300/p/5895759.html 这种
阅读全文
posted @ 2017-09-05 23:06
xh6300
阅读(1878)
推荐(2)
摘要:
我们知道,Halcon中的坐标系的原点在左上角,而一般二维平面坐标系的原点在左下角。那么Halcon中坐标系和一般的二维坐标系有什么区别呢?我通过下面这个例子来分析。 这三个点在Halcon中的位置如下图: 上面的程序最终生成了一个名为threePoint.dxf的文件。我用文本查看器(notepa
阅读全文
posted @ 2017-08-31 21:43
xh6300
阅读(14518)
推荐(3)
摘要:
二维仿射变换,顾名思义就是在二维平面内,对对象进行平移、旋转、缩放等变换的行为(当然还有其他的变换,这里仅论述这三种最常见的)。 Halcon中进行仿射变换的常见步骤如下: ① 通过hom_mat2d_identity算子创建一个初始化矩阵(即[1.0, 0.0, 0.0, 0.0, 1.0, 0.
阅读全文
posted @ 2017-08-28 00:13
xh6300
阅读(35728)
推荐(17)
摘要:
Halcon中可以通过concat_obj合并多个XLD,并且可以通过write_contour_xld_dxf再将XLD保存为.dxf文件。但是,保存后的.dxf文件用AutoCAD打开后发现,它们都是位于一个图层上的(0号图层),并且颜色都是白色(颜色代号7)。 如下所示: 有时候,我们要求这些
阅读全文
posted @ 2017-08-25 22:18
xh6300
阅读(3945)
推荐(0)
摘要:
在Halcon中,Region和XLD之间可以彼此转换。但这种转换并不是“无损”的,XLD可以是不闭合的,但是Region一定是闭合的。因此,如果将不闭合的XLD转为Region,然后再转回XLD,那么转换后的XLD和原先的XLD就有了一定的区别。 言归正传,先说说Region的缩放。 一、Regi
阅读全文
posted @ 2017-08-22 23:29
xh6300
阅读(8936)
推荐(1)
摘要:
线扫相机的原理:线扫相机一般一次只拍摄一条线(线宽通常是1个像素),在机构运动的过程中,线扫相机不断地拍摄线,于是“聚线成面”,这就是线扫相机成像的原理。 线扫相机的原理决定了,它所拍摄的物体必须要运动。机构运动的话,就存在机构的速度是否和线扫相机采集的速度匹配的问题。 将对机构运动速度的要求进行拆
阅读全文
posted @ 2017-08-22 21:17
xh6300
阅读(2528)
推荐(1)
摘要:
生活中,我们通常会遇到这种问题:一个文件夹内部有多个子文件夹,每个文件夹内部有很多图片,我们想改变这些图片的格式。 例如.png格式图片支持背景透明,但我们想把它变成背景不透明的.jpg图片。又比如.bmp格式是非压缩图片,我们想把它转换为无损压缩的.png图片以节省存储空间。 如果图片数量很少,很
阅读全文
posted @ 2017-07-30 23:30
xh6300
阅读(17533)
推荐(1)
摘要:
读取扫码枪扫出的条码通常需要考虑以下问题: 1、每次使用的码应该都是最新的有效的码。 2、如果遇到跟上次一样的码,则不更新,反之则更新。 3、需要对条码进行校验。 4、如果操作人员忘记扫码,需要有机制能发现并提醒操作人。 一般读码的设计通常有两种思路: ① 条码框接收到条码之后,存储该次条码,并立即
阅读全文
posted @ 2017-03-30 23:00
xh6300
阅读(614)
推荐(1)
摘要:
有时候通常需要简单的拼图,不涉及图像融合之类的,仅仅是简单的平移将多张图拼接成一张图。tile_images和tile_images_offset就是用于简单拼图的2个算子。 谈到拼图,肯定有以下问题要明确: 1、将多少张图拼起来?由于是多张图,这需要一个元组来存储多张图片的集合。 2、是横向拼图,
阅读全文
posted @ 2017-03-30 22:30
xh6300
阅读(7927)
推荐(0)
摘要:
select_shape_proto是一个非常有用的region筛选算子,但是由于难以理解,因此一般人使用得不是太多。 算子签名如下: select_shape_proto(Regions, Pattern : SelectedRegions : Feature, Min, Max : ) 其中Fe
阅读全文
posted @ 2017-03-30 20:50
xh6300
阅读(7759)
推荐(1)
摘要:
在Halcon的rft变换中,我们经常可以看到这样的算子组合: rft_generic (Image, ImageFFT2, 'to_freq', 'none', 'complex', Width) convol_fft (ImageFFT2, ImageFilter, ImageConvol2)r
阅读全文
posted @ 2017-03-20 23:31
xh6300
阅读(8233)
推荐(2)
摘要:
算子sort_contours_xld算子有5种排序方式,即: 'upper_left': The position is determined by the upper left corner of the surrounding rectangle. 'upper_right':The posi
阅读全文
posted @ 2017-03-11 22:25
xh6300
阅读(8096)
推荐(0)