我有10个RGB图像,我计算了它的各个通道的直方图。我想在一个10 x 2的网格上绘制图像及其RGB直方图,第0列表示所有图像,第1列表示它们各自的直方图(R,G,B)连在一起。什么像这样:
直方图
图片来源:https://lmcaraig.com/image-histograms-histograms-equalization-and-histograms-comparison/#2dhistogram
我已经在网上查了好几个选项,但还是觉得我遗漏了一些东西。我的困惑源于对plt.绘图与plt.imshow公司. 在
我正在使用matplotlib和opencv
我已经试过好几种选择了。这是我的密码
from matplotlib import pyplot as plt
w=10
h=10
fig=plt.figure(figsize=(8, 8))
columns = 2
rows = 10
color = ('r', 'g', 'b')
for ii in range(1, rows +1):
fig.add_subplot(rows, columns, ii)
img = bad_images_numpy[ii+400,:,:,:] #bad_images_numpy shape-> (4064,64,64,3)
plt.imshow(img)
fig.add_subplot(rows, columns, ii+1)
for i,col in enumerate(color):
histr = cv2.calcHist([img],[i],None,[256],[0,256])
plt.plot(histr,color = col)
plt.xlim([0,256])
plt.show()
目前,我的图像和直方图相互重叠,我不知道如何有效地绘制它们
您应该检查}。在
plt.subplots()
和plt.subplot()
,然后在轴上呈现直方图/图像,而不是plt.imshow()
,或{这是一个类似的函数,我不久前写的,也是为了同样的目的。左边是直方图,右边是图像。我相信你可以把它换成别的样子。在
相关问题 更多 >
编程相关推荐