一、需求:计算图片7个白色矩形的平均宽度。
二、分析:
- 首先求出七个矩形区域总得范围,然后再求每个矩形的范围。
- 求出每个矩形区域的边缘。
- 对每个矩形区域边缘处理:连接、拟合。
- 然后再求出每个线之间的间距,最后再求出总得平均间距。
三、halcon程序实现:
1、新建程序工程。
2、打开图片并处理。
3、阈值分割处理。
效果图
4、区域筛选。
选择结果,多了一个没用用的干扰区域。
使用矩形凸性值大小,去除干扰区域:
(需要选择的区域特征参数,使用使用区域特征检测工具获取)
5、将筛选出来的多个矩形区域,连成一个肢体,连起来的区域要扩大。
目的:
代码和效果:
将连起来的区域从原图中裁剪出来。裁剪注意,为了减少上下矩形边缘影响干扰,将矩形上下都裁掉一点
6、求裁剪出来的,矩形区域边缘。可以看出矩形边缘求出来了。但是边缘线不是很规整或者不是全部连接起来,需要拟合处理。
如下图,线之间距离。如果不对线进行处理,计算出来的距离会有很大的偏差。
所以,计算距离前先对线进行拟合处理。再求两个线之间的距离。
拟合后的边缘线,效果如下:
7、数组a保存的是7个矩形区域的宽度指,求7个矩形平均宽度就是数组a求平均值。求出的平均值在窗口上显示。代码如下:
效果:
8、计算程序运行时间,在窗口上显示。
效果:
9、提高程序运行速度:
对比运行时间,可以看到运行速度有了显著提高。
完。