Как сохранить сегментированное изображение как тематическое изображение в отличие от непрерывного изображения - PullRequest
1 голос
/ 11 мая 2019

У меня есть результат сегментации изображения в виде массива изображения в качестве изображения (значения как предсказанный класс). Когда я сохраняю это изображение, я получаю непрерывный тип слоя. Но я хочу, чтобы вместо этого был тематический тип слоя. Какую функцию или параметры я должен использовать, чтобы сохранить это изображение как тематическое (в формате .tif) например. изображение 3х3 выглядит как

[2,3,1

0,1,2

3,1,2]

вместо значений пикселей, таких как

[255,192,64

0,64,128

128,192,64]

Я хочу, чтобы гистограмма читалась с 0-3. Вместо этого гистограмма находится в диапазоне (0-256) для первого примера изображения 3х3. Я использую tifffile для записи в формате .tif

pred = numpy.argmax(ypreds, axis = 2)
tifffile.imwrite("pred1.tif", pred)

1 Ответ

1 голос
/ 11 мая 2019

Этот код, кажется, сохраняет значения, как вам требуется:

import numpy as np
import tifffile

# Create representative image
y = np.random.randint(0,4,size=(3,3),dtype=np.uint8)

# Mine looks like this
# array([[1, 3, 3],
#        [0, 2, 3],
#        [1, 0, 0]], dtype=uint8)

# Save as TIFF
tifffile.imsave("pred1.tif",y)  

Теперь проверьте содержимое с помощью ImageMagick , и значения и гистограмма будут соответствовать данным:

magick identify -verbose pred1.tif 

Image: pred1.tif
  Format: TIFF (Tagged Image File Format)
  Mime type: image/tiff
  Class: DirectClass
  Geometry: 3x3+0+0
  Resolution: 1x1
  Print size: 3x3
  Units: Undefined
  Colorspace: Gray
  Type: Grayscale
  Endianess: LSB
  Depth: 8-bit
  Channel depth:
    Gray: 8-bit
  Channel statistics:
    Pixels: 9
    Gray:
      min: 0  (0)                              <--- matches image
      max: 3 (0.0117647)                       <--- matches image
      mean: 1.44444 (0.00566449)
      standard deviation: 1.33333 (0.00522876)
      kurtosis: -1.91725
      skewness: 0.105324
      entropy: 0.945531
  Colors: 4
  Histogram:                                   <--- matches image
         3: (  0,  0,  0) #000000 gray(0)
         2: (  1,  1,  1) #010101 gray(1)
         1: (  2,  2,  2) #020202 gray(2)
         3: (  3,  3,  3) #030303 gray(3)
...