我对图像比较和略读的用法还很陌生。 我正在尝试使用compare\ ssim获得多个图像之间的结构相似性差异。我使用成对的距离来返回n个图像之间的差异数组。 但是,我得到以下错误:
Traceback (most recent call last):
File "<ipython-input-40-8451bdf0c9e6>", line 1, in <module>
m = pairwise_distances(X, X, metric=computeDiff)
File "C:\Anaconda\lib\site-packages\sklearn\metrics\pairwise.py", line 1432, in pairwise_distances
return _parallel_pairwise(X, Y, func, n_jobs, **kwds)
File "C:\Anaconda\lib\site-packages\sklearn\metrics\pairwise.py", line 1067, in _parallel_pairwise
return func(X, Y, **kwds)
File "C:\Anaconda\lib\site-packages\sklearn\metrics\pairwise.py", line 1088, in _pairwise_callable
out[i, j] = metric(X[i], Y[j], **kwds)
ValueError: setting an array element with a sequence.
我试图打印数组大小,以及compare\ssim返回的nd数组中几个list的list大小,以检查它们是否具有相同的大小。你知道吗
from skimage.measure import compare_ssim
import imutils
import cv2
from sklearn.metrics.pairwise import pairwise_distances
import cvutils
import numpy as np
def computeDiff(x,y):
print(train_images[int(x)])
print(train_images[int(y)])
img1 = cv2.imread(train_images[int(x)])
img2 = cv2.imread(train_images[int(y)])
grayA = cv2.cvtColor(img1, cv2.COLOR_BGR2GRAY)
grayB = cv2.cvtColor(img2, cv2.COLOR_BGR2GRAY)
(score, diff) = compare_ssim(grayA, grayB, full=True)
diff = (diff * 255).astype("uint8")
print("SSIM: {}".format(score))
return diff
images_path = "ImagePath"
train_images = []
train_images = cvutils.imlist(images_path)
train_images = list(set(train_images))
X = np.arange(len(train_images)).reshape(-1, 1)
m = pairwise_distances(X, X, metric=computeDiff)
我希望,有人可以帮助指出什么是错误的代码,如果可能的话,帮助修复它。你知道吗
谢谢
目前没有回答
相关问题 更多 >
编程相关推荐