首页 > 电脑专区 > 电脑教程 >

python3用opencv3进行结构化相似度判别

来源:互联网 2023-02-21 19:35:23 289

相似度判断除了直方图之外,还有一种结构化相似度判别也很好n1p办公区 - 实用经验教程分享!

就是采用compare_ssim函数进行处理,该函数在skimage.measure里n1p办公区 - 实用经验教程分享!

需要导出即可.n1p办公区 - 实用经验教程分享!

工具/原料

  • pycharm win7环境
  • opencv3 python3 skimage.measure

方法/步骤

  • 1

    首先需要通过from skimage.measure import compare_ssim进行导出n1p办公区 - 实用经验教程分享!

    n1p办公区 - 实用经验教程分享!

    import cv2 as cvn1p办公区 - 实用经验教程分享!

    import numpy as npn1p办公区 - 实用经验教程分享!

    import copyn1p办公区 - 实用经验教程分享!

    from matplotlib import pyplot as pltn1p办公区 - 实用经验教程分享!

    from skimage.measure import compare_ssimn1p办公区 - 实用经验教程分享!

    n1p办公区 - 实用经验教程分享!

    image = cv.imread('c:\\meiping1.png')n1p办公区 - 实用经验教程分享!

    cv.imshow("image", image)n1p办公区 - 实用经验教程分享!

    pic = cv.imread('c:\\meiping2.png')n1p办公区 - 实用经验教程分享!

    pic = cv.imread('c:\\meiping3.png')n1p办公区 - 实用经验教程分享!

    # pic = cv.imread('c:\\meiping4.png')n1p办公区 - 实用经验教程分享!

    cv.imshow("pic", pic)n1p办公区 - 实用经验教程分享!

    python3用opencv3进行结构化相似度判别n1p办公区 - 实用经验教程分享!

    python3用opencv3进行结构化相似度判别n1p办公区 - 实用经验教程分享!

  • 2

    转化成灰度, 注意这个和直方图比较相似度不同。n1p办公区 - 实用经验教程分享!

    grayImage = cv.cvtColor(image, cv.COLOR_BGR2GRAY)n1p办公区 - 实用经验教程分享!

    cv.imshow("grayImage", grayImage)n1p办公区 - 实用经验教程分享!

    n1p办公区 - 实用经验教程分享!

    grayPic = cv.cvtColor(pic, cv.COLOR_BGR2GRAY)n1p办公区 - 实用经验教程分享!

    cv.imshow("grayPic", grayPic)n1p办公区 - 实用经验教程分享!

    python3用opencv3进行结构化相似度判别n1p办公区 - 实用经验教程分享!

    python3用opencv3进行结构化相似度判别n1p办公区 - 实用经验教程分享!

  • 3

    列出直方图对比图,直观明了。n1p办公区 - 实用经验教程分享!

    plt.subplot(2, 1, 1)n1p办公区 - 实用经验教程分享!

    plt.hist(grayImage[0].ravel(), 256, [0, 256])n1p办公区 - 实用经验教程分享!

    plt.subplot(2, 1, 2)n1p办公区 - 实用经验教程分享!

    plt.hist(grayPic[0].ravel(), 256, [0, 256])n1p办公区 - 实用经验教程分享!

    plt.show()n1p办公区 - 实用经验教程分享!

    结果太令人惊讶 又核对了代码 是两个不同的灰度图,这难道是直方图的问题?n1p办公区 - 实用经验教程分享!

    注意这种方式是有问题的!n1p办公区 - 实用经验教程分享!

    python3用opencv3进行结构化相似度判别n1p办公区 - 实用经验教程分享!

  • 4

    plt.subplot(2, 1, 1)n1p办公区 - 实用经验教程分享!

    #图像,通道[0]-灰度图,掩膜-无,灰度级,像素范围n1p办公区 - 实用经验教程分享!

    hist_grayImage = cv.calcHist([grayImage],[0],None,[256],[0,256])n1p办公区 - 实用经验教程分享!

    plt.plot(hist_grayImage)n1p办公区 - 实用经验教程分享!

    plt.subplot(2, 1, 2)n1p办公区 - 实用经验教程分享!

    hist_grayPic = cv.calcHist([grayPic],[0],None,[256],[0,256])n1p办公区 - 实用经验教程分享!

    plt.plot(hist_grayPic)n1p办公区 - 实用经验教程分享!

    plt.show()n1p办公区 - 实用经验教程分享!

    python3用opencv3进行结构化相似度判别n1p办公区 - 实用经验教程分享!

  • 5

    通过compare_ssim计算相似度或者叫SSIM图像质量(图像评价)n1p办公区 - 实用经验教程分享!

    (xiangsidu, delta) = compare_ssim(grayImage, grayPic, full=True)print(xiangsidu, delta)n1p办公区 - 实用经验教程分享!

    输出结果。n1p办公区 - 实用经验教程分享!

    python3用opencv3进行结构化相似度判别n1p办公区 - 实用经验教程分享!

  • 6

    评价结果是0.56 基本和目视感觉差不多。说明这种结构化判断方法还是可以的。n1p办公区 - 实用经验教程分享!

  • 6本页面未经许可获取自百度经验
  • 注意事项

    • 注意直方图的处理方法
    • 这个要先转灰度再计算

    以上方法由办公区教程网编辑摘抄自百度经验可供大家参考!n1p办公区 - 实用经验教程分享!


    标签: python操作系统结构判别

    办公区 Copyright © 2016-2023 www.bgqu.net. Some Rights Reserved. 备案号:湘ICP备2020019561号统计代码