运动检测中的自动阈值

时间:2018-08-03 06:04:24

标签: opencv computer-vision

我正在研究一个需要检测运动的项目。我目前正在为此使用opencv中的BackgroundSubstractionCNT类。上面的算法返回一个二进制图像,其中白色像素代表运动对象。我在定义一个阈值时遇到了麻烦,该阈值决定是否有运动还是仅仅是噪音。目前,我使用的阈值为5%。是否有任何算法或过程可以自动调整该阈值或根据序列预测该阈值?

下面是它的部分代码:

def main():    
    minPixelStability = 30
    useHistory = False
    maxPixelStability = 60
    isParallel = False
    bs_cnt = cv2.bgsegm.createBackgroundSubtractorCNT(minPixelStability, useHistory, maxPixelStability, isParallel)
    output_frame = bs_cnt.apply(current_frame)

这是检测功能:

def detect_motion(output_frame):
    total_white_pixels = np.sum(output_frame > 100)
    # print(total_white_pixels)
    motion = None
    if(total_white_pixels > 0.05*output_frame.shape[0]*output_frame.shape[1]):
        motion = True
    else:           
        motion = False       

图像分辨率= 300 x 200

传感器类型= USB摄像头

要检测的物体=任何运动物体(有生命和无生命)

任何帮助或建议都将受到赞赏。

谢谢

0 个答案:

没有答案