《OpenCV 计算机视觉》—— 视频背景建模

还未写完!!!

  • 完整代码如下:

    python 复制代码
    import cv2
    
    cap = cv2.VideoCapture('test.avi')
    
    """
    getstructuringElement(shape,ksize,anchor=None)得到一个卷积核。主要用于后续的腐蚀、膨胀、开、闭等运算。
    参数:shape:设定卷积核的形状,可选如下三个参数:
                ①:MORPH_RECT(矩形卷积核)
                ②:MORPH_CROSS(十字形卷积核)
                ③:MORPH ELLIPSE(椭圆形卷积核)
        ksize:设定卷积核的大小、
        anchor:表示描点的位置:一般c=1,表示描点位于中心
    """
    
    kernel = cv2.getStructuringElement(cv2.MORPH_CROSS, (3, 3))
    
    # 创建混合高斯模型,用于背景建模
    fgbg = cv2.createBackgroundSubtractorMOG2()
    
    while (True):
        ret, frame = cap.read()     # ret:True表示正常读取到图像,frame:从视频中获取当前一帧图片
        cv2.imshow('frame', frame)
        fgmask = fgbg.apply(frame)  # 视频处理
        cv2.imshow('fgmask', fgmask)
        fgmask_new = cv2.morphologyEx(fgmask, cv2.MORPH_OPEN, kernel)   # 开运算去噪点,先腐蚀后膨胀。
        cv2.imshow('fgmask_new', fgmask_new)
        # 寻找视频中行走人的轮廓
        _, contours, h = cv2.findContours(fgmask_new, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
    
        for c in contours:
            # 计算各轮廓的周长
            perimeter = cv2.arcLength(c, True)
            if perimeter > 188:  # 找到人的矩形框
                x, y, w, h = cv2.boundingRect(c)
                # 画出这个短形
                fgmask_new_rect = cv2.rectangle(frame, (x, y), (x + w, y + h), (0, 255, 0), 2)
    
        cv2.imshow('fgmask_new_rect', fgmask_new_rect)
        k = cv2.waitKey(60)
        if k == 27:
            break
  • 结果如下:

相关推荐
事圆则缓13 分钟前
Flutter 与原生交互的最后一层:RTC 视频帧怎么走
flutter·音视频·实时音视频
FlightYe21 分钟前
linux系统编程(十七):内存管理基础
android·linux·ffmpeg·音视频·android runtime
2601_9654490832 分钟前
AI视频制作:做文物视频,青铜器瓷器的图难找,AI怎么自动扒文物素材?
人工智能·音视频
艾芯微科技38 分钟前
【音频线路驱动方案分享】圣邦微 SGM8903YTS14G,无电容立体声线路驱动器,解决 POP 声痛点
音视频
EasyCVR41 分钟前
应急指挥怕延迟?聊聊视频汇聚/视频融合/视频分析EasyCVR平台WebRTC低延迟方案
音视频·webrtc·easycvr
双翌视觉1 小时前
.机器视觉国产化方案梳理:对位算法、AI 检测平台与精密测量仪器技术架构
人工智能·计算机视觉·视觉检测·机器视觉·工业自动化·视觉对位系统·ai 视觉检测
开开心心就好1 小时前
电脑小说阅读器,支持朗读和自定义皮肤
服务器·开发语言·javascript·算法·pdf·c#·音视频
信可维1 小时前
用无头 Chrome 逐屏截图 + ffmpeg 拼竖版视频:1080×1920 全流程与 4 个坑
chrome·ffmpeg·音视频
怎么全是重名2 小时前
PatchCore
人工智能·深度学习·计算机视觉·异常检测
聚美智数2 小时前
人像渐变 API‑人脸平滑过渡‑人脸动图生成‑人像动画合成‑异步人像特效‑人脸渐变视频生成 API 接口介绍
音视频