如何找到两个图像之间的相关性

时间:2020-01-06 07:53:13

标签: python python-3.x numpy machine-learning computer-vision

我需要使用numpy查找两个图像之间的相关性,但仅是基本数学。我有问题:“ * IndexError:索引5434超出了轴0的范围,大小为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))) 

Corr coef

1 个答案:

答案 0 :(得分:2)

您可以在numpy中使用函数corrcoef查找Peason相关性。首先,您需要flatten两个图像阵列:

np.corrcoef(im1.flatten(), im2.flatten())
相关问题