比较两个图像并输出它们的直方图

compare two images and output their histograms

我有两张 黑白图像,我想使用直方图进行比较。

我正在使用以下代码显示单个图像的直方图:

import cv2
from matplotlib import pyplot as plt
img = plt.imread('222.jpg', 0)
histr = cv2.calcHist([img],[0],None,[256],[0,256])
plt.plot(histr)
plt.show()

我得到输出直方图:

你能告诉我吗,我怎样才能在输出图上显示两个 黑白图像两个直方图 ,例如,第一张图片显示为 红线 ,第二张图片显示为 蓝线 ,好吧,或者任何其他 直方图格式。 另外,请告诉我如何获取 黑白图像 的数据,以便我可以在 excel 中构建直方图,因为例子。 非常感谢!

  1. 你需要把两张黑白图的图都提到然后显示出来

  2. plot()

    中使用 color 标志选择颜色

代码:

img1 = plt.imread('image_1.jpg', 0)
img2 = plt.imread('image_2.jpg', 0)

# histogram of both images
hist1 = cv2.calcHist([img1],[0],None,[256],[0,256])
hist2 = cv2.calcHist([img2],[0],None,[256],[0,256])

# plot both the histograms and mention colors of your choice
plt.plot(hist1,color='red')
plt.plot(hist2, color='green')

plt.show()

要回答您的第二个问题,请将 hist1hist2 中的值作为两个单独的列存储在数据框中。将数据框另存为 excel 或 CSV 文件。您稍后可以打开文件,select 列和绘图。