【发布时间】:2016-09-19 20:39:56
【问题描述】:
我想通过直方图匹配和correlation方法来比较两个图像。
显然,这两张图片很相似。然后,我尝试找出与以下代码的相关性。
import cv2
import numpy as np
#reading the images and convert them to HSV
base = cv2.imread('base.jpg')
test1 = cv2.imread('test1.jpg')
basehsv = cv2.cvtColor(base,cv2.COLOR_BGR2HSV)
test1hsv = cv2.cvtColor(test1,cv2.COLOR_BGR2HSV)
# Calculate the Hist for each images
histbase = cv2.calcHist(basehsv,[0,1],None,[180,256],ranges)
cv2.normalize(histbase,histbase,0,255,cv2.NORM_MINMAX)
histtest1 = cv2.calcHist(test1hsv,[0,1],None,[180,256],ranges)
cv2.normalize(histtest1,histtest1,0,255,cv2.NORM_MINMAX)
# Compare two Hist. and find out the correlation value
base_test1 = cv2.compareHist(histbase,histtest1,0)
print base_test1
但是,打印出来的结果只是0.05xxx。
为什么相关性这么小?
如何改进结果?谢谢。
【问题讨论】:
-
你设置
ranges等于什么?当我用ranges = None运行你的代码时,我得到了 42% 的相似度 -
@maxymoo Ops,对不起。我为 test1 上传了错误的图像。我编辑并上传了新图像。我
标签: python opencv image-recognition