Я пытался использовать функцию point
для инвертирования и нормализации PIL image
к 1;но я не получаю желаемых результатов!Я попробовал вот что (не знаю, что не так?)
data = data.point(lambda p: 1 if p < 127 else 0 ) # threshold, invert and normalize to 1
Например, при попытке
print(np.array(data).max())
печатать True
.
Однако преобразование массива PIL Image
в numpy
с последующим инвертированием его работало следующим образом:
data = np.array(data.getdata(),
np.uint8).reshape(data.size[1], data.size[0], 1)
maxG = data.max() # correcting the values of folder e, they do not match the other folders
data = ( (maxG - data)/maxG ).astype('uint8')
tsfm = transforms.ToPILImage() #import torchvision.transforms as transforms
data = tsfm(data)
Я пробовал оба метода в эксперименте по распознаванию слов, у меня работал только второй.К сожалению, использование функции point
привело к неверным результатам.Не уверен, в чем разница?
NB.Второй метод очень медленный, поэтому, если это преобразование можно выполнить с помощью функции point
, это очень поможет.