0
点赞
收藏
分享

微信扫一扫

【OpenCV-Python】:视频直方图的动态显示

目录

一、前言

在【OpenCV-Python】:直方图及直方图均衡化(有源码)中我们知道了如何使用plot函数和opencv绘制图像直方图;

在【OpenCV-Python】:调用电脑摄像头+读取视频中我们知道了如何读取电脑中的视频并可视化出来

今天带来的便是对视频的直方图动态显示!
请添加图片描述

二、程序展示

import cv2
import matplotlib.pyplot as plt

cap = cv2.VideoCapture(r'C:\Users\Lenovo\Desktop\wzry.mp4')
plt.ion()       # 由于matplotlib的显示模式默认为"阻塞模式","阻塞模式"下,plt只会显示第一张图,因此这里使用plt.ion()启动动态绘图模式

while(True):
    
    plt.clf()       # 清屏函数,如果不加该函数会导致每一帧的直方图被叠加

    ret, frame = cap.read()
    video = cv2.resize(frame, (1200, 540))      # 由于原视频分辨率过大,为了适配显示器,这里按比例对帧尺度缩小

    cv2.imshow('frame', video)      # 显示视频

    histb = cv2.calcHist([frame], [0], None, [256], [0, 256])
    histg = cv2.calcHist([frame], [1], None, [256], [0, 256])
    histr = cv2.calcHist([frame], [2], None, [256], [0, 256])

    plt.plot(histb, color='b')
    plt.plot(histg, color='g')
    plt.plot(histr, color='r')

    if cv2.waitKey(1) == ord('q'):
        break

cap.release()
cv2.destroyAllWindows()

三、结果可视化

这里贴几张截图展示一下!(鲁大一出手,就知有没有!)

记得动手试试!!!

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

举报

相关推荐

0 条评论