tile = Image.fromarray(self.normalize_tile(tile, Normalize).astype('uint8'),'RGB')
def normalize_tile(self, tile, NormVec):
Lab = color.rgb2lab(tile)
TileMean = [0,0,0]
TileStd = [1,1,1]
newMean = NormVec[0:3]
newStd = NormVec[3:6]
for i in range(3):
TileMean[i] = np.mean(Lab[:,:,i])
TileStd[i] = np.std(Lab[:,:,i])
tmp = ((Lab[:,:,i] - TileMean[i]) * (newStd[i] / TileStd[i])) + newMean[i]
if i == 0:
tmp[tmp<0] = 0
tmp[tmp>100] = 100
Lab[:,:,i] = tmp
else:
tmp[tmp<-128] = 128
tmp[tmp>127] = 127
Lab[:,:,i] = tmp
tile = self.Lab_to_RGB(Lab)
return tile