少有人走的路

勇哥的工业自动化技术网站

本站视觉相关教程整理贴子,持续更新

2020年勇哥的机器视觉实验项目清单(大纲)

勇哥的免费视频教程清单

勇哥在B站发布的视频清单

halcon极坐标变换切割齿轮

勇哥的一个案子里需求如下:分割出齿轮的小齿,小齿要排列规则,图像大小固定由于齿轮数量有40多个,因此分割要求速度快分割后的图片形成磁盘文件    (图1  分割后的图片样例)(图2  要分割的齿轮和极坐标转换后的效果) 这个需求如果不考虑速度的话,是很简单的。最简单的是转动图片固定角度,然后用一个矩形ROI去切割固定位置的小齿。但是这个办法由于耗时太长,能实现功能,却达不到速度要求。还有一个办法是crop_domain算子切割小齿,然后再仿射变换

粘合度高的物体识别

首先看看要使用的图像(这是闲着无聊在halcon网上找的一张实际生产中的图):从图像中看,颗粒状物体都有不同程度的粘连在一起,这给我们在处理上带来了一定的麻烦。首先想,对于这样的图,人是怎么识别的?抽象出来就是:先记住颗粒的形状,再去里面找。因此很明显想到的是图像匹配识别,不过粘连度高的就不好使用特征模板匹配了,因为粘连的物体本身其特征就模糊了很多。这里建议使用ncc模板匹配,至于ncc与shape之间的差异,请访问:read_image (Image, 'C:/Us

halcon的Region旋转(区域旋转)

关键算子:           orientation_region           vector_angle_to_rigid           affine_trans_region 测试图片:halcon代码:*此例子将图中没有偏移的形状参照旋转的形状进行旋转 read_image (

从去除毛刺的策略看开运算opening_circle和闭运算closing_circle的异同

例一:毛刺在往外凸的面上策略1:分割出黑色部分,然后通过开运算去掉毛刺,再通过原黑色部分区域减去开运算之后的区域,得到毛刺部分的区域。 read_image (Tu, 'C:/Users/xiahui/Desktop/tu.jpg') binary_threshold (Tu, Region, 'max_separability', 'dark', UsedThres

玻璃瓶口的缺陷检测

inspect_bottle_mouth.hdev巧妙运用了极坐标变换法,细节很精细,值得学习* tuning parameters SmoothX := 501 ThresholdOffset := 25 MinDefectSize := 50 *  * initialization PolarResolution := 640 RingSize :=

halcon知识点杂七杂八 2020/10(一)

(一) 判断对象为空对于region是否为空,用下面的算子。IsEqual1是个inter型,如果为空则为1,否则为0gen_empty_region(EmptyRegion1) test_equal_region(EmptyRegion1,CheckARegion,IsEqual1) if(IsEqual1==1)     return() endif判断hobject为空则用算子test_equal_obj判断object为空,count_ob

勇哥的实验:halcon阈值分割算子细谈(一)dyn_threshold

阈值分割引言

阈值分割有非常多的算法,大体上分为全局和局部算法。
全局算法包括全局固定阈值和基于图像直方图的阈值,局部算法包括局部动态阈值分割。
基于图像直方图阈值分割的方法也有很多,比如常规的高斯滤波双峰法,OTSU大津法。
但是这类所有的法都基于一个假设:图像是有前景和背景的,待分割目标处于背景中,即图像直方图是双峰的。
如果因为非均匀光照导致待分割目标不处于背景或前景中,即图像直方图无双峰,
那么基于图像直方图的所有法都是不甚理想的
只能在此基础上进行一定的变换,例如nbl算法等,这些都属于局部算法。

任何算法,都会基于假设空间的。没有假设空间,所有算法性能一致。包括经典算法和深度学习算法。

本系列的贴子勇哥通过实验来细品它们之间的差别,以求以后可以精准应用。

halcon几个小知识点:通过点拟合椭圆;通过两个xld拟合椭圆

原图:(图1)想求出它的黑色边界,用来判断NG的部分。如下图所示,蓝色线是勇哥想求的边界。红色箭头所指的是缺陷,它有两部分。颜色较浅的灰色带和颜色深的黑色带,它们是两种类型的NG特征,其判断阈值是不同的。(图2)勇哥想到的几个方法:(一) 通过边界xld拟合椭圆设想是通过图3的两根xld,拟合出图4的椭圆。(图3)(图4)dev_close_window() read_image (Pic20200923105531Blockid9363, 'F:/blockI

在C#代码中设置海康相机设置增益Gain出错的问题

这个问题的现象是下面这句话报错,说是参数有问题:HOperatorSet.SetFramegrabberParam(AcqHandle, "Gain", 2.0);而在halcon中,连接相机后查阅参数,其中增益参数就叫Gain,这个是绝对没有写错的。而这句话的设置时机放在了取得相机设备句柄之后。  HOperatorSet.OpenFramegrabber("HMV3rdParty", 0, 0, 0,&

halcon和C#混编的时候几段要注意的代码202009

(一)注意下面的img不能放在线程外面写。而是要放在lamada写法的线程里面。 public string ccdTopWork()         {                   HObject&nbs
<< < 8 9 10 11 12 13 14 15 16 17 > >>
«    2025年12月    »
1234567
891011121314
15161718192021
22232425262728
293031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
文章归档
网站收藏
友情链接

Powered By Z-BlogPHP 1.7.3

Copyright www.skcircle.com Rights Reserved.

鄂ICP备18008319号


站长QQ:496103864 微信:abc496103864