多光譜影像是指使用電磁波譜的多個波段(而不僅僅是可見光譜)拍攝的影像。這意味著它們可以捕捉從紫外線到紅外線的更廣泛波長範圍內的數據。
透過捕捉多個光譜波段的數據,多光譜影像可以提供有關被拍攝物體或場景的額外資訊,例如其成分、溫度和植被健康狀況。這些資訊可用於廣泛的應用,包括農業、環境監測、災害應變和軍事監視。
多光譜影像通常使用衛星、無人機或飛機上的專用感測器來捕捉。然後使用專用軟體處理數據,以建立顯示每個光譜波段中捕捉到的資訊的影像。
總體而言,多光譜影像提供了一個強大的工具來分析和理解我們周圍的世界,使我們能夠獲得單獨使用可見光影像無法獲得的見解。
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