【发布时间】:2020-02-18 05:33:09
【问题描述】:
我在python和opencv中计算两张灰度图的相似度时,调用compare_ssim()的函数报错。
gray1 = cv2.cvtColor(frame1, cv2.COLOR_BGR2GRAY)
gray2 = cv2.cvtColor(frame2, cv2.COLOR_BGR2GRAY)
(score, diff) = compare_ssim(gray1, gray2, full=True)
报错信息如下:
TypeError:structure_similarity() 接受 2 个位置参数,但给出了 8 个
这是来自库的函数。来自_structural_similarity.py 文件。目录为\skimage\measure\_structural_similarity.py。
def compare_ssim(X, Y, win_size=None, gradient=False,
data_range=None, multichannel=False, gaussian_weights=False,
full=False, **kwargs):
warn('DEPRECATED: skimage.measure.compare_ssim has been moved to '
'skimage.metrics.structural_similarity. It will be removed from '
'skimage.measure in version 0.18.', stacklevel=2)
return structural_similarity(X, Y, win_size, gradient,
data_range, multichannel, gaussian_weights,
full, **kwargs)
return行,此行显示错误信息。
还有structural_similarity()。这个函数的目录是\skimage\metrics\_structural_similarity.py,函数如下:
def structural_similarity(im1, im2,
*,
win_size=None, gradient=False, data_range=None,
multichannel=False, gaussian_weights=False,
full=False, **kwargs):
这是什么问题,为什么会这样?
【问题讨论】:
-
您好 Frans Fan,欢迎来到 Stack Overflow。请edit您的问题提供您收到的异常的完整追溯,而不仅仅是最终消息。它提到了一个您没有直接调用的函数,因此问题出在哪里并不明显。我还为您的问题添加了一些标签,因此在编辑时,请仔细检查它们是否正确(并添加任何适当的标签)。
compare_ssim是你写的函数吗?如果是这样,也包括它的代码!如果它来自图书馆,请说明它来自哪里。 -
我在 opencv 库中没有看到
structural_similarity函数。你知道这个函数是从哪里来的吗?你提到了一个structural_similarity文件,它是从哪里来的?此外,是否在某处定义了structural_similarity函数(即def structural_similarity(....):?
标签: python python-3.x opencv