Opencv 运动检测中的自动阈值
我正在做一个需要检测运动的项目。为此,我目前正在opencv中使用BackgroundSubstractionNT类。上述算法返回一个二值图像,其中白色像素表示移动对象。我在定义一个阈值时遇到了一些问题,该阈值决定是否存在运动或只是噪声。目前,我使用的阈值为5%。是否有任何算法或流程可以自动调整该阈值或根据序列预测该阈值 下面是它的部分代码:Opencv 运动检测中的自动阈值,opencv,computer-vision,Opencv,Computer Vision,我正在做一个需要检测运动的项目。为此,我目前正在opencv中使用BackgroundSubstractionNT类。上述算法返回一个二值图像,其中白色像素表示移动对象。我在定义一个阈值时遇到了一些问题,该阈值决定是否存在运动或只是噪声。目前,我使用的阈值为5%。是否有任何算法或流程可以自动调整该阈值或根据序列预测该阈值 下面是它的部分代码: def main(): minPixelStability = 30 useHistory = False maxPixe
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摄像头
待检测对象=任何移动对象(活体和非活体)
欢迎提供任何帮助或建议
谢谢请添加更多信息以供评论。您能否提及需要哪些其他信息?“我正在从事一个需要检测运动的项目”->这似乎非常广泛(传感器类型?分辨率?对象的类型和大小?)。您还应该添加用于实例化
backgroundsubstractionnt
class@GabrielDevillers谢谢你的建议。我用一段代码更新了这个问题。如果你还需要什么,请告诉我。