帧间差分法python代码_【算法/图像处理】运动检测--帧间差分法

0x00帧间差分法顾名思义,就是将视频的前后帧对应的像素点进行差运算得出差值。0x01 原理首先将视频每帧画面转为二值图(即只有“白”与“黑”两种颜色的图),再将前后帧进行差运算。当前后帧的同一个像素点的差值不为零,并且差值的绝对值超过设定的阈值时,就可以判断画面发生了移动。0x02 优点算法简单,程序实现的难度不高对光线的变化感知不明显(只要光线变化不是太大,二值化后的图像基本相同)能够适应各种...
摘要由CSDN通过智能技术生成

0x00

帧间差分法顾名思义,就是将视频的前后帧对应的像素点进行差运算得出差值。

0x01 原理

首先将视频每帧画面转为二值图(即只有“白”与“黑”两种颜色的图),再将前后帧进行差运算。当前后帧的同一个像素点的差值不为零,并且差值的绝对值超过设定的阈值时,就可以判断画面发生了移动。

0x02 优点算法简单,程序实现的难度不高

对光线的变化感知不明显(只要光线变化不是太大,二值化后的图像基本相同)

能够适应各种动态变化的图像,稳健性较强

0x03 缺点对于快速移动的物体,画面容易变“糊”,过快的话甚至会被认为是两个物体

对于慢速移动的物体,由于速度过慢导致前后帧几乎重合,而检测不到物体

检测出的物体有“空洞”,只能检测出移动物体的外边,而且检测出来的外边要比物体实际的轮廓大

0x10 相邻帧间差分法

相邻帧间差分法就是二帧法,对相邻的两帧图像做差运算,取差值的绝对值构成移动物体。

其优点是实时性高,运算快速。但光照突变的情况下效果不好。

0x11 代码实现

使用 opencv-python进行演示import cv2

#上一帧

lastFram = None

#我这的视频源是使用网络摄像头

cap = cv2.VideoCapture("rtsp://admin:admin@192.168.31.89:8445/live")

while (cap.isOpened()):

#逐帧读取摄像头画面

ret, fram = cap.read()

#转

  • 2
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值