如何将分段图像存储为主题图像而不是连续图像

时间:2019-05-11 09:24:06

标签: python-3.x image-processing tiff

我将图像分割图像数组的结果作为image(值作为预测类)。当我保存此图像时,我得到连续的图层类型。但是我想要的是主题图层类型。 我应使用什么功能或参数将此图像保存为主题图像(.tif格式) 例如。 3x3的图片看起来像

[2,3,1

0,1,2

3,1,2]

代替像

这样的像素值

[255,192,64

0,64,128

128,192,64]

我希望直方图从0-3读取。相反,对于第一个3x3示例图像,直方图的范围为(0-256)。 我正在使用tifffile以.tif格式编写

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

1 个答案:

答案 0 :(得分:1)

此代码似乎可以根据需要保存值:

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)