我正在使用图像创建卷积神经网络数据集。为了减少像素之间的相关性,数据必须是零均值和方差1.因此对于图像,白化变换就是这样。我正在做ZCA美白。代码正在运行,但我获得的输出是错误的。我在这里附上我的代码。请告诉我为什么会这样......提前致谢...
import numpy as np
import cv2
import matplotlib.pyplot as plt
def whiten(X,fudge=1E-18):
Xcov = np.cov(X)
d,V = np.linalg.eigh(Xcov)
D = np.diag(1. / np.sqrt(d+.1))
W = np.dot(np.dot(V, D), np.transpose(V))
X_white = np.dot(W,X)
return X_white, W, np.var(X_white)
x=cv2.imread('ar.jpg')
x=cv2.resize(x,(400,400))
img = cv2.cvtColor(x, cv2.COLOR_RGB2GRAY)
plt.imshow(img,cmap='Greys_r')
plt.show()
new,W,var=whiten(img)
plt.imshow(new,cmap='Greys_r')
plt.show()
输入和输出为:Image