【发布时间】:2020-04-23 18:46:45
【问题描述】:
我需要使用 numpy 找到两个图像之间的相关性,但仅限于基本数学。我有问题:"* IndexError: index 5434 is out of bounds for axis 0 with size 5434*"。我有一个代码。告诉我该怎么做,请告诉我。
img = PIL.Image.open("SR1.png").convert("L")
im = numpy.array(img)
img2 = PIL.Image.open("SR61.png").convert("L")
im2 = numpy.array(img2)
np.array(im,dtype=float)
np.array(im2,dtype=float)
import math
import cmath
def correlationCoefficient(X, Y, n) :
sum_X = 0
sum_Y = 0
sum_XY = 0
squareSum_X = 0
squareSum_Y = 0
i = 0
for i in range(n) :
sum_X = sum_X + X[i]
sum_Y = sum_Y + Y[i]
sum_XY = sum_XY + X[i] * Y[i]
squareSum_X = squareSum_X + X[i] * X[i]
squareSum_Y = squareSum_Y + Y[i] * Y[i]
i = i + 1
corr = (n * sum_XY - sum_X * sum_Y)/(cmath.sqrt((n * squareSum_X - sum_X * sum_X)* (n * squareSum_Y - sum_Y * sum_Y)))
return corr
X = im.flatten()
Y = im2.flatten()
n = len(X)
print ('{0:.6f}'.format(correlationCoefficient(X, Y, n)))
【问题讨论】:
-
好的。我改变了一些东西
-
len(X) == len(Y)? -
首先去掉
i=0和i = i + 1,因为你有for循环。 -
@AndreasK。 @MykolaZotko 谢谢,伙计们但是知道“RuntimeWarning:ubyte_scalars 中遇到溢出”因此我有 corr coef -243,.. 这不好))你有什么想法吗?
-
你从哪里得到 corr 的公式?可以显示出处吗?
标签: python python-3.x numpy machine-learning computer-vision