下述OpenCV视觉处理代码中sensor_rate变量的输出含义是什么?
sensor_rate变量含义说明
sensor_rate的本质是Sensor1指定检测区域内,被有效识别目标覆盖的像素面积和预设基准面积的比值,具体推导逻辑如下:
- 前置识别步骤:
代码首先读取摄像头采集的图像,转换到HSV颜色空间后做高斯模糊,通过cv2.inRange方法提取符合指定颜色阈值的目标区域;再筛选出位于指定坐标范围(x≤600、300≤y≤455)、面积大于900像素的有效轮廓,将这些轮廓对应的区域在空白单通道图zeros_image中填充为白色(像素值为255)。 - 比值计算步骤:
- 调用
cv2.bitwise_or配合预设的Sensor1.mask(Sensor1的检测区域掩码)做掩码运算,得到仅保留Sensor1检测区域内白色目标的结果图mask_result white_cell_number统计的是Sensor1检测区域内,被有效目标覆盖的像素总个数Sensor1.full_mask_area是提前设定的基准面积值,结合输出的取值范围可以判断它大概率是单个检测子单元的基准像素面积:- 取值在0.85~31区间时,代表检测到的有效目标覆盖了接近1个到31个左右的检测子单元
- 取值小于0.85时,代表没有完整覆盖单个检测子单元,或是未检测到符合要求的有效目标
- 调用
如果Sensor1.full_mask_area是Sensor1整个检测区域的总像素数,那么大于1的取值说明存在识别误差(比如颜色阈值过松导致误识别的白色区域超出了检测区域总大小)。
内容的提问来源于stack exchange,提问作者dcrcruz
相关产品推荐
相关产品推荐

