如何使用Python/Opencv/Matplotlib并排显示视频和直方图?
我正在尝试显示视频,它是您自己的并排直方图,但我的代码无法正常工作,至少在同时:如何使用Python/Opencv/Matplotlib并排显示视频和直方图?,python,opencv,numpy,video,matplotlib,Python,Opencv,Numpy,Video,Matplotlib,我正在尝试显示视频,它是您自己的并排直方图,但我的代码无法正常工作,至少在同时: import cv2 from skimage.io import imread import numpy as np import scipy.misc import matplotlib.pyplot as plt cap = cv2.VideoCapture('video.mp4') count = 0 while(cap.isOpened()): ret, frame = cap.read()
import cv2
from skimage.io import imread
import numpy as np
import scipy.misc
import matplotlib.pyplot as plt
cap = cv2.VideoCapture('video.mp4')
count = 0
while(cap.isOpened()):
ret, frame = cap.read()
count +=1
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
gray = scipy.misc.imresize(gray, 0.45)
hist = cv2.calcHist([gray],[0],None,[256],[0,256])
cv2.imshow('Gray', gray)
cv2.waitKey(5)
plt.title("Histogram")
plt.plot(hist)
plt.show()
cap.release()
cv2.destroyAllWindows()
我该怎么做?我接受任何建议。。。我的目标是显示两个窗口(一个播放视频,另一个打印直方图),或者只显示一个并排显示视频和直方图的窗口,可能是使用numpy.hstack。使用
matplotlib.pyplot.imshow
,并并排显示两个图形(请参阅matplotlib文档了解如何操作)。|或者,您可以让matplotlib渲染成一个图像,然后将所有内容组合成一个大画布图像。。。但这有点复杂。你可以看看这个问题:不显示两个视频流,而是在其中一个子图中显示直方图。使用matplotlib.pyplot.imshow
显示,并并排显示两个数字(请参阅matplotlib文档了解如何操作)。|或者,您可以让matplotlib渲染成一个图像,然后将所有内容组合成一个大画布图像。。。但这有点复杂。你可以看看这个问题:你不需要显示两个视频流,而是在其中一个子图中显示直方图。