繁体   English   中英

如何从图片中的每个 rgb 通道获取直方图?

[英]How can get the histogram from each rgb channel in a picture?

我在 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()

这将 plot 直方图作为连续的线,用不同的颜色表示每个通道,但您可以使用相同的逻辑来分隔图并显示离散直方图。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM