python - 绘制灰度图像的直方图

标签 python matplotlib

我正在尝试找出一种方法来查找灰度图像的直方图。所以首先我找到了图像的平均权重,然后将其输出为灰度,很好。我只是对将灰色图像绘制成直方图感到困惑。有人可以帮我弄清楚如何将灰度图像绘制成直方图吗?

import numpy as np
import matplotlib.pyplot as py
from PIL import Image as im
from scipy import misc


img = misc.imread("Zpicture.jpg")

def weightedAverage(pixel): ## function to calculate
    return 0.299*pixel[0] + 0.587*pixel[1] + 0.114*pixel[2]

grey = np.zeros((img.shape[0], img.shape[1])) # init 2D numpy array
# get row number
for rownum in range(len(img)):
 for colnum in range(len(img[rownum])):
  grey[rownum][colnum] = weightedAverage(img[rownum][colnum])


 py.imshow(grey, cmap = py.matplotlib.cm.Greys_r)
 py.show()

最佳答案

我认为您正在寻找plt.hist(grey)。请注意,通常的约定是 import matplotlib.pyplot as plt。坚持常用的样式是件好事!

最后,您的图像转换代码可以简化为:

grey = 0.299*img[:,:,0] + 0.587*img[:,:,0] + 0.114*img[:,:,0]

关于python - 绘制灰度图像的直方图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42639839/

相关文章:

python - 如何将 numpy 数组转换为内存中的 pil 图像?

python - 根据作业编号绘制成绩

python - 指定matplotlib图形的确切大小

python - 如何在 Python 中使用 Matplotlib 绘制带有数据列表的直方图?

python - 尝试在 Mac 上安装 Scrapy

python - 在 xpath 中使用子节点作为限定符,用于 selenium webdriver

python - 只能访问 Python unicode 字典中列表的最后一个元素

python - 在父 for 循环中继续

python - 如何隐藏从 Python 调度的 COM 对象

python - 使用 cronjob 运行带有参数的 python 脚本会出现错误 :/bin/sh: password: command not found