gpt4 book ai didi

python - 如果两个图像具有几乎相同的 RGB 颜色分布,则比较它们

转载 作者:行者123 更新时间:2023-12-02 16:07:57 25 4
gpt4 key购买 nike

我有两个彩色图像 img1 和 img2,如下定义

 img1 = cv2.imread("source1")
img2 = cv2.imread("source2")

现在我想知道两个图像的RGB值的分布是否几乎相同。作为人类,我可以从两个图像的 RGB 直方图分布中看出它们几乎相同或不同。但是有没有一种方法可以通过 OpenCV 做到这一点,它可以告诉我们两个图像的 RGB 分布几乎相同?
color = ('b','g','r')
for i,col in enumerate(color):
histr = cv.calcHist([img1],[i],None,[256],[0,256])
plt.subplot(1,2,1)
plt.plot(histr,color = col)
plt.xlim([0,256])
plt.title("Img 1")

histr = cv.calcHist([img2],[i],None,[256],[0,256])
plt.subplot(1,2,2)
plt.plot(histr,color = col)
plt.xlim([0,256])
plt.title("Img 2")
plt.show()

最佳答案

如果取两个直方图 A 和 B 的 x 轴上的每个点,则该点两者之间的重叠量是较小者的高度:

min(A,B)

所以,你只需要总结一下几点:
np.sum(np.minimum(A,B))

作为经验解释,如果两个直方图在同一个地方都很高,那么直方图重叠就会很高, min(A,B) 也是如此。 .如果一高一低,则直方图重叠且 min(A,B)会低。

我找到了一个很好的插图 here这也有用地建议通过除以像素总数进行归一化。

关于python - 如果两个图像具有几乎相同的 RGB 颜色分布,则比较它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62163454/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com