Когда я использую 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')
Да, поблагодарить в комментариях - это нормально. Не за что. Вы можете посмотреть Почему говорить «заранее спасибо» считается грубым?
Большое тебе спасибо. Спасибо за правки. Я не знал, что мы должны опускать общие приветствия (хотя это имеет смысл). Надеюсь, спасибо, что это нормально :)