Когда я использую skimage.transform.rescale
чтобы уменьшить размер изображения на 40%, тип данных преобразуется из uint8
в float64
.
Я могу вручную изменить тип данных, но я не хочу иметь слишком много ручных вмешательств в моем коде.
Существует ли метод масштабирования, сохраняющий тип данных? Я также альтернативно открыт для методов, изменяющих тип данных.
Вы можете использовать функцию утилиты img_as_ubyte
чтобы преобразовать измененное изображение обратно в uint8
.
In [26]: from skimage import util, data, transform
In [27]: img = data.moon()
In [28]: img.shape
Out[28]: (512, 512)
In [29]: img.dtype
Out[29]: dtype('uint8')
In [30]: res = util.img_as_ubyte(transform.rescale(img, 0.6))
In [31]: res.shape
Out[31]: (307, 307)
In [32]: res.dtype
Out[32]: dtype('uint8')