skimage.transform.rescale меняет тип данных с uint8 на float64

1

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

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

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

Теги:
image
types
scikit-image

1 ответ

0
Лучший ответ

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню