python环境下OPenCV处理视频流局部区域像素值

 更新时间:2021年11月04日 10:38:36   作者:零尾  
这篇文章主要为大家介绍了python环境下OPenCV处理视频流局部区域像素值的实现示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步

参考我之前写的处理图片的文章:Python+OpenCV实现【图片】局部区域像素值处理(改进版)

开发环境:Python3.6.0 + OpenCV3.2.0

任务目标:摄像头采集图像(例如:480640),并对视频流每一帧(灰度图)特定矩形区域(48030)像素值进行行求和,得到一个480*1的数组,用这480个数据绘制条形图,即在逐帧采集视频流并处理后“实时”显示采集到的视频,并“实时”更新条形图。工作流程如下图:

这里写图片描述

这里写图片描述

源码:

# -*- coding:utf-8 -*-
import cv2
import numpy as np
camera = cv2.VideoCapture(0) # 参数0表示第一个摄像头
# camera = cv2.VideoCapture("test.avi") # 从文件读取视频
# 判断视频是否打开
if (camera.isOpened()):
    print 'Open'
else:
    print 'Fail to open!'

# # 测试用,查看视频size
# size = (int(camera.get(cv2.CAP_PROP_FRAME_WIDTH)),
#        int(camera.get(cv2.CAP_PROP_FRAME_HEIGHT)))
# print 'size:'+repr(size)
rectangleCols = 30
while True:
    grabbed, frame_lwpCV = camera.read() # 逐帧采集视频流
    if not grabbed:
        break
    gray_lwpCV = cv2.cvtColor(frame_lwpCV, cv2.COLOR_BGR2GRAY) # 转灰度图
    frame_data = np.array(gray_lwpCV)  # 每一帧循环存入数组
    box_data = frame_data[:, 400:400+rectangleCols] # 取矩形目标区域
    pixel_sum = np.sum(box_data, axis=1) # 行求和q
    length = len(gray_lwpCV)
    x = range(length)
    emptyImage = np.zeros((rectangleCols*10, length*2, 3), np.uint8)
    for i in x:
        cv2.rectangle(emptyImage, (i*2, (rectangleCols-pixel_sum[i]/255)*10), ((i+1)*2, rectangleCols*10), (255, 0, 0), 1)
    emptyImage = cv2.resize(emptyImage, (320, 240))

    # 画目标区域
    lwpCV_box = cv2.rectangle(frame_lwpCV, (400, 0), (430, length), (0, 255, 0), 2)
    cv2.imshow('lwpCVWindow', frame_lwpCV) # 显示采集到的视频流
    cv2.imshow('sum', emptyImage)  # 显示画出的条形图
    key = cv2.waitKey(1) & 0xFF
    if key == ord('q'):
        break
camera.release()
cv2.destroyAllWindows()

以上就是python环境下OPenCV处理视频流局部区域像素值的详细内容,更多关于OPenCV视频流局部区域像素处理的资料请关注脚本之家其它相关文章!

相关文章

  • 关于pycharm找不到MySQLdb模块的解决方法

    关于pycharm找不到MySQLdb模块的解决方法

    MySQLdb是用于Python链接Mysql数据库的接口,它实现了Python数据库API规范V2.0,基于MySql C API上建立的,本文给大家介绍pycharm找不到MySQLdb模块解决方法,需要的朋友参考下吧
    2021-06-06
  • 用Python遍历C盘dll文件的方法

    用Python遍历C盘dll文件的方法

    这篇文章主要介绍了用Python遍历C盘dll文件的方法,用fnmatch模块实现起来非常简单,需要的朋友可以参考下
    2015-05-05
  • python中字符串前面加r的作用

    python中字符串前面加r的作用

    这篇文章主要介绍了python中字符串前面加r的作用,实例分析了Python通过字符串前面加r实现禁止字符串转义的功能,需要的朋友可以参考下
    2015-06-06
  • Python3中最常用的5种线程锁实例总结

    Python3中最常用的5种线程锁实例总结

    python3线程中锁机制还是很重要的知识点,如果大家不清楚锁机制的话,那就一定要好好看下这篇文章,这篇文章主要给大家总结介绍了光宇Python3中最常用的5种线程锁,需要的朋友可以参考下
    2021-07-07
  • Python 的迭代器与zip详解

    Python 的迭代器与zip详解

    本篇文章主要介绍Python 的迭代器与zip,可迭代对象的相关概念,有需要的小伙伴可以参考下,希望能够给你带来帮助
    2021-11-11
  • 基于Python中单例模式的几种实现方式及优化详解

    基于Python中单例模式的几种实现方式及优化详解

    下面小编就为大家分享一篇基于Python中单例模式的几种实现方式及优化详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-01-01
  • python 基于selenium实现鼠标拖拽功能

    python 基于selenium实现鼠标拖拽功能

    这篇文章主要介绍了python 基于selenium实现鼠标拖拽功能的方法,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下
    2020-12-12
  • 使用PDB简单调试Python程序简明指南

    使用PDB简单调试Python程序简明指南

    这篇文章主要介绍了使用PDB简单调试Python程序简明指南,本文讲解了使用PDB调试程序的简单技巧,方便、简洁实用,需要的朋友可以参考下
    2015-04-04
  • TensorFlow:将ckpt文件固化成pb文件教程

    TensorFlow:将ckpt文件固化成pb文件教程

    今天小编就为大家分享一篇TensorFlow:将ckpt文件固化成pb文件教程,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02
  • 对python 合并 累加两个dict的实例详解

    对python 合并 累加两个dict的实例详解

    今天小编就为大家分享一篇对python 合并 累加两个dict的实例详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-01-01

最新评论