我在Lena测试图片上尝试了一些东西,其中一个是独立绘制每个rgb直方图,但由于某种原因它不起作用。
下面是我的代码:
from skimage import io, color
import matplotlib.pyplot as plt
# Charger l'image Lena
X = io.imread('lena.png')
fig, (ax0, ax1,ax2) = plt.subplots(1, 3)
rgb=[]
for i in range(3):
rgb.append(X[:,:,i])
ax0.imshow(plt.hist(rgb[0]))
ax1.imshow(plt.hist(rgb[1]))
ax2.imshow(plt.hist(rgb[2]))
关于您的解决方案,您最后错过了ply.show()
。
您还可以使用open-cv
执行以下操作:
import cv2
import matplotlib.pyplot as plt
image = cv2.imread('lena.jpg')
for i, col in enumerate(['b', 'g', 'r']):
hist = cv2.calcHist([image], [i], None, [256], [0, 256])
plt.plot(hist, color = col)
plt.xlim([0, 256])
plt.show()
这将把直方图绘制成连续的线,用不同的颜色表示每个通道,但是您可以使用相同的逻辑来分离这些图并显示离散的直方图。