试图匹配两个图像以找出它们之间的分数。但它显示了一些尺寸错误。无法解决问题。我的代码如下:
from skimage.measure import compare_ssim
#import argparse
#import imutils
import cv2
img1="1.png"
img2="2.png"
# load the two input images
imageA = cv2.imread(img1)
imageB = cv2.imread(img2)
# convert the images to grayscale
grayA = cv2.cvtColor(imageA, cv2.COLOR_BGR2GRAY)
grayB = cv2.cvtColor(imageB, cv2.COLOR_BGR2GRAY)
# compute the Structural Similarity Index (SSIM) between the two
# images, ensuring that the difference image is returned
(score, diff) = compare_ssim(grayA, grayB, full=True)
diff = (diff * 255).astype("uint8")
print("SSIM: {}".format(score))
这给 n 一个错误:
raise ValueError('Input images must have the same dimensions.')
ValueError: Input images must have the same dimensions.
如何解决这个问题?
请您参考如下方法:
修改Saurav Panda的回答:
您可以像这样将其中一张图片调整为另一张图片的大小:
imageB=cv2.resize(imageB,imageA.shape)
注意
(H, W) = imageA.shape
# to resize and set the new width and height
imageB = cv2.resize(imageB, (W, H))
cv2.resize 函数输入期望 (W,H)。这是 cv2.shape (H,W) 输出的逆序,所以你需要捕获它,否则在比较非正方形图像时你会得到同样的错误。
