【发布时间】:2016-12-21 11:49:40
【问题描述】:
我正在使用 python2.7 opencv 库来计算一些图像的直方图,所有图像的大小完全相同(cv2.calchist)
我需要做两件事: 1.计算多个图像的平均值 - 代表相似对象的多个图像,因此我想要该对象的“代表性”直方图(如果你有更好的想法,我愿意接受建议)以供将来比较。 2. 将直方图数据存储在我的 mongo db 中以供将来比较(cv2 相关性)
我看到的与该问题相关的唯一代码是我的 histogram_comparison 代码:
def histogram_comparison(real, fake):
images = [real, fake]
index = []
for image in images:
image = image.decode('base64')
image = np.fromstring(image, dtype=np.uint8)
image = cv2.imdecode(image, 1)
image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
hist = cv2.calcHist([image], [0, 1, 2], None, [32, 32, 32],
[0, 256, 0, 256, 0, 256])
hist = cv2.normalize(hist).flatten()
index.append(hist)
result_dist = cv2.compareHist(index[0], index[1], cv2.cv.CV_COMP_CORREL)
return round(result_dist, 5)
取自:http://www.pyimagesearch.com/2014/07/14/3-ways-compare-histograms-using-opencv-python/
我确实意识到,当使用 numpy(或者是 scipy?)直方图时,有一种简单的方法可以获取 bin 并对它们进行平均,但是我不确定如何在直方图之间进行比较,所以我宁愿继续使用opencv
提前致谢
【问题讨论】:
标签: python-2.7 opencv numpy image-processing histogram