在使用Python做图片相识度对比时候,网上一搜大部分都是直接贴出了代码、但这块具体的搭建没有找到一个完整的方法。结合自己搜索心得,汇总一下。希望能帮到累死在环境搭建中的同道中人。前提需要安装numpy:pip install numpy
本文主要用来解决以下2个问题
1、不知道如何 import cv2
导入cv2,需要手动去网站选择下载自己合适的版本
https://www.lfd.uci.edu/~gohlke/pythonlibs/
进入后直接Ctrl+F搜索OpenCV
下载后进入下载目录,使用cmd命令进行安装
pip install opencv_python-3xxx_amd64.whl
安装成功后直接import cv2, 成功。
避免重复造*,如果还是不会可以参考以下详细教程。
https://blog.csdn.net/baidu_37366055/article/details/81737805
2、from skimage.measure import compare_ssim报错
首先,需要安装scikit-image库,然后使用一下方式进行导入
from skimage.metrics import structural_similarity
示例:
import cv2
from skimage.metrics import structural_similarity
def compare_image(imagePath1, imagePath2):
imageA=cv2.imread(imagePath1)
imageB = cv2.imread(imagePath2)
grayA = cv2.cvtColor(imageA, cv2.COLOR_BGR2GRAY)
grayB = cv2.cvtColor(imageB, cv2.COLOR_BGR2GRAY)
score, diff = structural_similarity(grayA, grayB, full=True)
print('SSIM:{}'.format(score))
return score
if __name__ == '__main__':
score = compare_image('xxx/xxx.png','xxx/ooo.png')
print("Score:{}".format(score))
if score >0.5:
print('xxxxxxxxx')
#Score:0.46122278272499356
#Score:0.38601514916629887
#Score:0.26453798916071003
#Score:0.08641753856358424
2个图片相识度越高数值越大,完全相等返回1.0。可以根据对比结果进行判断,完成自己的需求。