Color Modes

多光譜影像

多光譜影像是指使用電磁波譜的多個波段(而不僅僅是可見光譜)拍攝的影像。這意味著它們可以捕捉從紫外線到紅外線的更廣泛波長範圍內的數據。

透過捕捉多個光譜波段的數據,多光譜影像可以提供有關被拍攝物體或場景的額外資訊,例如其成分、溫度和植被健康狀況。這些資訊可用於廣泛的應用,包括農業、環境監測、災害應變和軍事監視。

多光譜影像通常使用衛星、無人機或飛機上的專用感測器來捕捉。然後使用專用軟體處理數據,以建立顯示每個光譜波段中捕捉到的資訊的影像。

總體而言,多光譜影像提供了一個強大的工具來分析和理解我們周圍的世界,使我們能夠獲得單獨使用可見光影像無法獲得的見解。

ImageMagick 中的多光譜支援

ImageMagick 支援所有通道都具有與原始影像相同的尺寸和像素數的多光譜影像。但是,並非所有影像格式都支援多光譜影像。PSD、TIFF、MIFF、MPC 和 FTXT 完全支援多達 31 個波段和 21 個元數據通道的多光譜影像。如果您使用配置腳本 --enable-64bit-channel-masks 選項構建 ImageMagick,則可以處理具有多達 52 個元數據通道的 62 波段多光譜影像。

我們將標準 RGB(A) 或 CMYK(A) 通道以外的影像通道稱為「元數據」通道。我們將它們標記為「元數據」、「元數據 1」、「元數據 2」等。元數據通道的處理方式與任何其他通道相同,這意味著可以對其進行讀取、寫入和操作——例如,調整大小、伽瑪調整等。

建立多光譜影像

從多光譜影像開始,通常為 TIFF 或 PSD 格式。如果您沒有,則可以自行建立。在我們的範例中,我們建立了一個具有兩個元數據通道的單個 CMYK 像素。將其放入名為 multiMeta.txt 的文件中

0,0: 10,20,30,40,50,60

讓我們將其轉換為 TIFF 影像格式

$ magick -size 1x1 -colorspace CMYK -define ftxt:format="\x,\y:\c\n" -define ftxt:hasalpha=false -define ftxt:nummeta=2 ftxt:multiMeta.txt multiMeta.tif

讓我們確認是否按預期工作

$ identify -verbose multiMeta.tif
Image:
  Filename: multiMeta.tif
  Permissions: rw-------
  Format: TIFF (Tagged Image File Format)
  Mime type: image/tiff
  Class: DirectClass
  Geometry: 1x1+0+0
  Units: PixelsPerInch
  Colorspace: CMYK
  Type: ColorSeparation
  Endianness: LSB
  Depth: 16-bit
  Channels: 6.2
  Channel depth:
    Cyan: 16-bit
    Magenta: 16-bit
    Yellow: 16-bit
    Black: 16-bit
    Meta channel[0]: 16-bit
    Meta channel[1]: 16-bit
  Channel statistics:
    Pixels: 1
    Cyan:
      min: 10  (0.00015259)
      max: 10 (0.00015259)
      mean: 10 (0.00015259)
      median: 10 (0.00015259)
      standard deviation: 0 (0)
      kurtosis: -3
      skewness: 0
      entropy: 0
    Magenta:
      min: 20  (0.00030518)
      max: 20 (0.00030518)
      mean: 20 (0.00030518)
      median: 20 (0.00030518)
      standard deviation: 0 (0)
      kurtosis: -3
      skewness: 0
      entropy: 0
    Yellow:
      min: 30  (0.000457771)
      max: 30 (0.000457771)
      mean: 30 (0.000457771)
      median: 30 (0.000457771)
      standard deviation: 0 (0)
      kurtosis: -3
      skewness: 0
      entropy: 0
    Black:
      min: 40  (0.000610361)
      max: 40 (0.000610361)
      mean: 40 (0.000610361)
      median: 40 (0.000610361)
      standard deviation: 0 (0)
      kurtosis: -3
      skewness: 0
      entropy: 0
    Meta channel[0]:
      min: 50  (0.000762951)
      max: 50 (0.000762951)
      mean: 50 (0.000762951)
      median: 50 (0.000762951)
      standard deviation: 0 (0)
      kurtosis: -3
      skewness: 0
      entropy: 0
    Meta channel[1]:
      min: 60  (0.000915541)
      max: 60 (0.000915541)
      mean: 60 (0.000915541)
      median: 60 (0.000915541)
      standard deviation: 0 (0)
      kurtosis: -3
      skewness: 0
      entropy: 0
  Image statistics:
    Overall:
      min: 10  (0.00015259)
      max: 60 (0.000915541)
      mean: 35 (0.000534066)
      median: 35 (0.000534066)
      standard deviation: 0 (0)
      kurtosis: -1.79762
      skewness: 4.44476e-15
      entropy: 0
  Total ink density: 0.15259%
  Colors: 1
  Histogram:
             1: (10,20,30,40) #000A0014001E0028 cmyk(0.0389105,0.077821,0.116732,0.155642)
  Rendering intent: Perceptual
  Gamma: 0.454545
  Chromaticity:
    red primary: (0.64,0.33)
    green primary: (0.3,0.6)
    blue primary: (0.15,0.06)
    white point: (0.3127,0.329)
  Matte color: grey74
  Background color: white
  Border color: srgb(223,223,223)
  Transparent color: black
  Interlace: None
  Intensity: Undefined
  Compose: Over
  Page geometry: 1x1+0+0
  Dispose: Undefined
  Iterations: 0
  Compression: None
  Orientation: TopLeft
  Properties:
    date:create: 2023-03-12T11:38:42+00:00
    date:modify: 2023-03-12T11:38:42+00:00
    date:timestamp: 2023-03-12T11:38:56+00:00
    signature: c51848f16d296f7c95be14404cc582f49db6fd33f31b544a2ce10e440b3747b3
    tiff:alpha: unspecified
    tiff:endian: lsb
    tiff:photometric: separated
    tiff:rows-per-strip: 1
  Artifacts:
    verbose: true
  Tainted: False
  Filesize: 306B
  Number pixels: 1

請注意與兩個元數據通道相關聯的通道深度和統計資訊。

使用多光譜影像

元數據通道的處理方式與任何其他通道相同,這意味著可以對其進行讀取、寫入和操作——例如,調整大小、伽瑪調整等。在這裡,我們將第一個通道替換為元數據通道的內容

magick multiMeta.tif -channel-fx 'meta1=>cyan' multiMeta-1.tif

原始青色通道的強度為 10。根據通道 FX 指令,現在為 50。

在此範例中,我們建立了兩個元數據通道

magick lena.png \( mandril3.jpg -colorspace gray \) -channel-fx '| gray=>meta' \( zelda1.jpg -colorspace gray \) -channel-fx '| gray=>meta1' meta.tif

在此範例中,我們將兩個元數據通道混合到一個 Alpha 通道中

magick in.tiff -alpha opaque \( +clone -set colorspace sRGB -channel-fx "meta0=>red meta1=>green" \) -channel A -fx "(v.r+v.g)/2" +channel out.tiff

寫入多光譜影像

您可以透過將多光譜影像寫入支援元數據通道的格式(例如 TIFF 或 PSD)來保留它們。如果您寫入不支援多光譜影像的其他影像格式,則不會保留這些通道,而是會丟失——例如,PNG。在此範例中,我們讀取、調整大小並寫入多光譜影像

magick multiMeta.tif -resize 50% resizedMeta.tif