skimage.transform.rescale меняет тип данных с uint8 на float64 - PullRequest
0 голосов
/ 11 октября 2018

Когда я использую skimage.transform.rescale для уменьшения размера изображения на 40%, тип данных преобразуется из uint8 в float64.

Я могу вручную изменить тип данных, но не хочув моем коде слишком много ручных вмешательств.

Существует ли какой-либо метод масштабирования, сохраняющий тип данных?Я также альтернативно открыт для методов, изменяющих тип данных.

1 Ответ

0 голосов
/ 11 октября 2018

Вы можете использовать служебную функцию 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')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...