一、前言
图像处理中经常会遇到计算两个轮廓最小距离以及最小距离点。在此统计对比了三种计算方式:labview中计算、调用halcon计算、调用opencv计算;红色表示轮廓C1,C2最小距离。

二、处理过程
测试数据为长度300和长度400的轮廓点集。考虑到图像处理轮廓分析后是轮廓的输出形式,这里以点集方式输出。
2.1 labview循环计算轮廓距离
labview中计算两个轮廓点集以常规的两个循环来计算。计算过程以及时间见程序框图。



2.2halon计算轮廓距离
halcon通过调用halconnet接口进行处理,这里拆分了总的时间以及halcon函数处理时间。


2.3 opencv计算轮廓距离
使用opencv进行轮廓距离计算使用的是opencv_labview.vip包进行处理,处理逻辑以及时间如下所示。



三、总结
对于点集分别为200长度和400长度的轮廓,labview使用两重循环平均时间为440ms(使用循环加速也没有明显的速度提升);halcon进程轮廓计算平均时间为196ms,虽然函数处理速度<1ms,但是数组到元组的转换较为耗时;使用opencv进行轮廓计算平均耗时3ms,有着最高的计算效率(主要原因为opencv_labview.vip是用c++进行编写,而labview数据和c++传递有着较高的兼容性)。
2260

被折叠的 条评论
为什么被折叠?



