function sysCall_visioninData local data= ProximitySensorprevious=ProximitySensor ProximitySensor=simreadProximitySensorsensor local handler = inDatahandle ifProximitySensorprevious=0a
该函数是一个Lua脚本函数,用于处理视觉传感器数据。下面是逐句分析:
1.定义函数sysCall_vision,并传入参数inData。
2.定义一个空表data={}。
3.将当前的ProximitySensor的值赋给ProximitySensorprevious。
4.将视觉传感器的值赋给ProximitySensor。
5.定义一个变量handler,赋值为inData.handle。
6.如果ProximitySensorprevious小于等于0且ProximitySensor大于0,则执行以下操作:
7.定义一个空表packet={}和一个空表data={}。
8.将视觉传感器的图像转换为工作图像。
9.在工作图像上选择性地应用颜色过滤器。
10.在工作图像上应用缓冲区1。
11.在工作图像上执行blob检测。
12.将blob检测结果解包,并赋值给变量ans。
13.将ans解包为浮点数表格,并赋值给变量packet。
14.从packet中获取blob数量和每个blob的数据大小。
15.使用循环,获取每个blob的相对大小、方向、相对位置、实际位置、边界框相对尺寸和颜色。
16.将每个blob的实际位置和颜色存储在data表中。
17.使用冒泡排序,按照x轴坐标对data表进行排序。
18.将data表打包,并写入自定义数据块'data3'中。
19.设置信号'getdata'的值为1,以通知控制器可以获取数据。
20.将工作图像转换为视觉传感器图像。
21.如果信号'finishDone'的值为1,则执行以下操作:
22.将data表赋值为空表。
23.将data表打包,并写入自定义数据块'data3'中。
24.清除信号'finishDone'的值。
25.函数执行完毕
原文地址: https://www.cveoy.top/t/topic/huK6 著作权归作者所有。请勿转载和采集!