マルチスペクトル画像とは、可視光スペクトルだけでなく、電磁スペクトルの複数のバンドを使用してキャプチャされた画像を指します。これは、紫外線から赤外線まで、より広い波長範囲にわたってデータをキャプチャすることを意味します。
複数のスペクトルバンドにわたってデータをキャプチャすることにより、マルチスペクトル画像は、組成、温度、植生の健全性など、画像化されているオブジェクトまたはシーンに関する追加情報を提供できます。この情報は、農業、環境モニタリング、災害対応、軍事監視など、幅広いアプリケーションに使用できます。
マルチスペクトル画像は、多くの場合、衛星、ドローン、または航空機に搭載された特殊なセンサーを使用してキャプチャされます。その後、データは専用ソフトウェアを使用して処理され、各スペクトルバンドでキャプチャされた情報を表示する画像が作成されます。
全体として、マルチスペクトル画像は、周囲の世界を分析および理解するための強力なツールを提供し、可視光画像だけでは得られない洞察を得ることができます。
ImageMagickでのマルチスペクトルサポート
ImageMagickは、すべてのチャネルが元の画像と同じ寸法とピクセル数を持つマルチスペクトル画像をサポートしています。ただし、すべての画像形式がマルチスペクトル画像をサポートしているわけではありません。PSD、TIFF、MIFF、MPC、およびFTXTは、21個のメタチャネルを持つ最大31バンドのマルチスペクトル画像を完全にサポートしています。ImageMagickをconfigureスクリプト--enable-64bit-channel-masksオプションでビルドすると、最大52個のメタチャネルを持つ62バンドのマルチスペクトル画像を処理できます。
標準のRGB(A)またはCMYK(A)チャネルを超える画像チャネルを「メタ」チャネルと呼びます。「メタ」、「メタ1」、「メタ2」などとしてラベル付けします。メタチャネルは、読み取り、書き込み、操作(たとえば、サイズ変更、ガンマ調整など)が可能な他のチャネルと同じように扱われます。
マルチスペクトル画像の作成
通常、TIFFまたはPSD形式のマルチスペクトル画像から開始します。お持ちでない場合は、自分で作成できます。この例では、2つのメタチャネルを持つ単一の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
2つのメタチャネルに関連付けられたチャネル深度と統計に注目してください。
マルチスペクトル画像の操作
メタチャネルは、読み取り、書き込み、操作(たとえば、サイズ変更、ガンマ調整など)が可能な他のチャネルと同じように扱われます。ここでは、最初のチャネルをメタチャネルの内容で置き換えます。
magick multiMeta.tif -channel-fx 'meta1=>cyan' multiMeta-1.tif
元のシアンチャネルの強度は10です。チャネルFX命令に従い、現在は50です。
また、この例では、2つのメタチャネルを作成します。
magick lena.png \( mandril3.jpg -colorspace gray \) -channel-fx '| gray=>meta' \( zelda1.jpg -colorspace gray \) -channel-fx '| gray=>meta1' meta.tif
この例では、2つのメタチャネルを1つのアルファチャネルにブレンドします。
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