当前位置: 首页 > article >正文

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

还未写完!!!

  • 完整代码如下:

    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
    
  • 结果如下:
    在这里插入图片描述


http://www.kler.cn/news/327366.html

相关文章:

  • 【React】react hooks的使用规则
  • 基于深度学习的持续的知识积累与转移
  • golang学习笔记19-面向对象(一):面向对象的引入
  • 9.30学习
  • 南沙C++信奥赛陈老师解一本通题: 1963:【13NOIP普及组】小朋友的数字
  • Redis 性能优化的高频面试题及答案
  • HAProxy 安全配置
  • 正则表达式中的贪婪模式和非贪婪模式
  • [大语言模型-论文精读] 大语言模型是单样本URL分类器和解释器
  • 相互作用的检索增强 3D 分子生成扩散模型 - IRDiff 评测
  • 滚雪球学MySQL[5.1讲]:事务与并发控制
  • 如何使用ssm实现钢铁集团公司安全管理系统的构建与实现
  • 基于小步大步法(BSGS)的同态加密多项式求值
  • 滚雪球学Oracle[2.1讲]:Oracle数据库安装与配置
  • 新品上市!智能无线接入型路由器ZX7981EP,WIFI6技术双频频段
  • 解锁微信小程序新技能:ECharts动态折线图搭配WebSocket,数据刷新快人一步!
  • 数据库 - Mongo数据库
  • 第166天:应急响应-拒绝服务钓鱼指南DDOS压力测试邮件反制分析应用日志
  • ubuntu server 常用配置
  • Spring面试内容大纲
  • ios内购支付-支付宝APP支付提现
  • 互联网前后端分离的开发场景,一般会员和数据权限的判断是放在前端还是后端?
  • 【08】纯血鸿蒙HarmonyOS NEXT星河版开发0基础学习笔记-Scroll容器与Tabs组件
  • 大屏娱乐体验新标杆:海信发布全新一代AI电视
  • 解决MySQL命令行中出现乱码问题
  • Mysql高级篇(中)——多版本并发控制 MVCC
  • 字体文件压缩
  • 深入 Spring RestTemplate 源码:掌握 HTTP 通信核心技术
  • dockerfile部署springboot项目(构建镜像:ebuy-docker:v1.0)
  • Java高效编程(7):消除过时的对象引用