我想在不同的图中绘制两个不同的直方图,但在同一窗口中打开。通过以下代码,我在同一图中获得了两个直方图。我无法获得带有子图的直方图,不知道我哪里出错了。
from matplotlib import pyplot as plt
img = cv2.imread(f)
img1 = cv2.imread('compressed_' + f)
color = ('b', 'g', 'r')
for i, col in enumerate(color):
histr = cv2.calcHist([img], [i], None, [256], [0, 256])
hist = cv2.calcHist([img1], [i], None, [256], [0, 256])
plt.plot(histr, color=col)
plt.plot(hist, color=col)
plt.xlim([0, 256])
plt.title('Original image')
plt.show()
答案 0 :(得分:0)
听起来您想要创建两个子图。为此,您应该使用matplotlib中的subplots函数。
您的代码应如下所示:
from matplotlib import pyplot as plt
import cv2
img = cv2.imread(f)
img1 = cv2.imread('compressed_' + f)
color = ('b', 'g', 'r')
fig, ax = plt.subplots(2,1)
for i, col in enumerate(color):
histr = cv2.calcHist([img], [i], None, [256], [0, 256])
hist = cv2.calcHist([img1], [i], None, [256], [0, 256])
ax[0].plot(histr, color=col)
ax[1].plot(hist, color=col)
plt.xlim([0, 256])
plt.title('Original image')
plt.show()