✨博客主页:王乐予🎈
✨年轻人要:Living for the moment(活在当下)!💪
🏆推荐专栏:【图像处理】【千锤百炼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()
三、结果可视化
这里贴几张截图展示一下!(鲁大一出手,就知有没有!)
记得动手试试!!!