Python与FPGA——帧间差算法


前言

  帧间差法可以检测运动物体,通过摄像头获取连续的两帧或者三帧进行差值处理,像素变化较大的可以认为是运动的目标,变化小的可以认为是背景。这里提到摄像头,因为我们的项目没有摄像头,所以FPGA部分就不需要实现,但是后期会考虑加入摄像头。


一、帧间差算法

  帧间差算法的核心是阈值的选择。如果阈值偏大,则变化较小的移动的物体就会被忽略,相应的运动较大的移动物体被保留下来;反之,如果阈值偏小,则可能变化较小的目标也被保留下来,会出现满屏的运动像素的现象。

二、Python实现帧差法

import cv2
import numpy as np
#图像灰度处理
def image_gray(image):
    gray = np.dot(image[:, :, ...], [0.3, 0.59, 0.11])
    return gray
#计算两张图像的差异,超过阈值设置像素值
def diff_method(frame1, frame2, value):
    frame_diff = np.abs(frame1 - frame2)
    return np.where(frame_diff >= value, 255, 0).astype(np.uint8)
    
cap = cv2.VideoCapture(0)#获取摄像头
ret, curr_frame = cap.read()#获取一帧
curr_frame = cv2.flip(curr_frame, 180)#图像水平翻转
curr_frame = image_gray(curr_frame)#图像灰度处理
while True:
    ret, next_frame = cap.read()#获取当前帧
    next_frame = cv2.flip(next_frame, 180)#图像翻转
    if ret:
        next_frame = image_gray(next_frame)#下一帧灰度处理
        frame_diff = diff_method(curr_frame, next_frame, 80)#上一帧和当前帧进行差值计算
        cv2.imshow('video', frame_diff)#显示
        k = cv2.waitKey(30) & 0xff
        if k == 27:#按下按键esc
            break
    else:
        break
    curr_frame = next_frame
cv2.destroyAllWindows()
cap.release()

三、实现效果

帧差法


总结

  到此处,《基于MATLAB与FPGA的图像处理教程》图像二值化处理章节就结束了。下一部分图像锐化处理,让你的图像更突出。

相关推荐

  1. PythonFPGA——算法

    2024-03-10 18:46:01       43 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-10 18:46:01       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-10 18:46:01       106 阅读
  3. 在Django里面运行非项目文件

    2024-03-10 18:46:01       87 阅读
  4. Python语言-面向对象

    2024-03-10 18:46:01       96 阅读

热门阅读

  1. Ajax与jQuery

    2024-03-10 18:46:01       39 阅读
  2. 轮询--一起学习吧之架构

    2024-03-10 18:46:01       39 阅读
  3. [LeetCode][LCR184]设计自助结算系统——单调队列

    2024-03-10 18:46:01       41 阅读
  4. Hive动态分区静态分区

    2024-03-10 18:46:01       45 阅读
  5. 双非二本实习前的准备day8

    2024-03-10 18:46:01       38 阅读
  6. CentOS上安装与配置Nginx

    2024-03-10 18:46:01       42 阅读
  7. linux tar分卷压缩与windows合并解压

    2024-03-10 18:46:01       41 阅读
  8. 安卓 Kotlin 面试

    2024-03-10 18:46:01       39 阅读
  9. C语言 goto 语句的基本格式是什么?如何使⽤?

    2024-03-10 18:46:01       39 阅读