Обычные причины, по которым TIFF (или любое другое изображение) должны быть 4-полосными, состоят в следующем:
- RGBA, то есть содержит красный, зеленый и синий каналы плюс канал альфа / прозрачности, или
- CMYK, то есть содержит голубой, пурпурный, желтый и черный каналы - это наиболее распространено в печатной промышленности, где «разделения» используются в 4-цветной печати, см. здесь или
- что это многодиапазонные изображения, такие как спутниковые изображения с красным, зеленым, синим и ближним инфракрасным диапазоном, например, Landsat MSS (мультиспектральный сканер) или что-то подобное.
Обратите внимание, что некоторые люди используют файлы TIFF для топографической информации, батиметрической информации, микроскопии и других целей.
Вероятная причина того, что значения будут больше 256, заключается в том, что это 16-битные данные. Хотя это могут быть 10-битные, 12-битные, 32-битные числа с плавающей запятой, двойные числа или что-то еще.
Без доступа к вашему изображению невозможно сказать намного больше. Имея доступ к вашему изображению, вы можете использовать ImageMagick в командной строке, чтобы узнать больше:
magick identify -verbose YourImage.TIF
Пример вывода
Image: YourImage.TIF
Format: TIFF (Tagged Image File Format)
Mime type: image/tiff
Class: DirectClass
Geometry: 1024x768+0+0
Units: PixelsPerInch
Colorspace: CMYK <--- check this field
Type: ColorSeparation <--- ... and this one
Endianess: LSB
Depth: 16-bit
Channel depth:
Cyan: 16-bit <--- ... and this
Magenta: 1-bit <--- ... this
Yellow: 16-bit <--- ... and this
Black: 16-bit
Channel statistics:
...
...
Вы можете масштабировать значения следующим образом:
from tifffile import imread
import numpy as np
# Open image
img = imread('image.tif')
# Convert to numpy array
npimg = np.array(img,dtype=np.float)
npimg[:,:,0]/=256
npimg[:,:,1]/=256
npimg[:,:,2]/=256
npimg[:,:,3]/=65535
print(np.mean(npimg[:,:,0]))
print(np.mean(npimg[:,:,1]))
print(np.mean(npimg[:,:,2]))
print(np.mean(npimg[:,:,3]))