Python+opencv图像处理(两图之间的相似度计算)

一、通过opencv的calcHist()计算图像的直方图,并利用cv2.compareHist()来比较以下两张图之间的相似度

# -*- coding: utf-8 -*-
# !/usr/bin/env python
# @Time    : 2018/11/13 11:05
# @Author  : xhh
# @Desc    : opencv计算两个图片之间的直方图
# @File    : opencv_compare_hist.py
# @Software: PyCharm
import matplotlib.pyplot as plt
import cv2
import numpy as py

img = cv2.imread("../doraemon/image-030.png")
img1 = cv2.imread("../doraemon/image-002.jpg")
# 计算图img的直方图
H1 = cv2.calcHist([img], [1], None, [256],[0,256])
H1 = cv2.normalize(H1, H1, 0, 1, cv2.NORM_MINMAX, -1) # 对图片进行归一化处理

# 计算图img2的直方图
H2 = cv2.calcHist([img1], [1], None, [256],[0,256])
H2 = cv2.normalize(H2, H2, 0, 1, cv2.NORM_MINMAX, -1)

# 利用compareHist()进行比较相似度
similarity = cv2.compareHist(H1, H2,0)
print(similarity)

# img和img1直方图展示
plt.subplot(2, 1,1)
plt.plot(H1)
plt.subplot(2,1,2)
plt.plot(H2)
plt.show()

运行结果(直方图比较):

最终的相似度为:

猜你喜欢

转载自blog.csdn.net/weixin_39121325/article/details/84025935
今日推荐