美文网首页
用 OpenCV histogram 比较图片相似度

用 OpenCV histogram 比较图片相似度

作者: 钱肥肥 | 来源:发表于2018-07-05 07:04 被阅读0次

    最近一个项目需要比较两个图片的相似度,查找比较了一下觉得可以用OpenCV的histogram信息来比较两个图片的相似度。OpenCV的官网上有一些Python接口的信息,但是没有很好得整合起来。

    首先需要用OpenCV来读取图片的信息:

    Python: cv2.imread(filename[, flags]) → retval

    然后用calcHist方法来获取图片的Histogram:

    Python: cv2.calcHist(images, channels, mask, histSize, ranges[, hist[, accumulate]]) → hist¶

    接下来用compareHist比较两张图片的Histogram:

    Python: cv2.compareHist(H1, H2, method)

    这边的method是不同的evaluation matrix,有如下五种可以选:

    CV_COMP_CORREL Correlation
    CV_COMP_CHISQR Chi-Square
    CV_COMP_INTERSECT Intersection
    CV_COMP_BHATTACHARYYA Bhattacharyya distance
    CV_COMP_HELLINGER Synonym for CV_COMP_BHATTACHARYYA

    所以接下来我们可以将整个流程完整的连接起来:

    def compare_image(filepath1, filepath2):
        image1 = cv.imread(filepath1)
        hist1 = cv2.calcHist([image1], [0], None, [256], [0, 256])
        image2 = cv.imread(filepath2)
        hist2 = cv2.calcHist([image2], [0], None, [256], [0, 256])
    
        return cv2.compareHist(hist1, hist2, CV_COMP_CORREL)
    

    相关文章

      网友评论

          本文标题:用 OpenCV histogram 比较图片相似度

          本文链接:https://www.haomeiwen.com/subject/fsduuftx.html