compare
使用例 • オプション一覧
compare プログラムを使うと、画像とその再構成結果との差分を、数学的かつ視覚的に注釈付けできます。compare コマンドの組み立て方についてはコマンドライン処理を参照するか、以下のコマンド使用例をご覧ください。
使用例
compare コマンドの有用さと手軽さを示すため、いくつか例を挙げます。手始めに、ある画像とシャープ化した画像を比較してみましょう:
magick rose.jpg -sharpen 0x1 reconstruct.jpg
magick compare rose.jpg reconstruct.jpg difference.png
magick compare -compose src rose.jpg reconstruct.jpg difference.png
差分画像の赤い領域は、画像のシャープ化の影響を受けたピクセルを強調(ハイライト)し、白はシャープ化処理の影響を受けていないピクセルを目立たなくします(ローライト)。
画像とその再構成結果の差分を視覚的に解釈するのに加えて、差分の数学的な尺度も報告します:
$ magick compare -verbose -metric rmse rose.jpg reconstruct.jpg difference.png
Image: rose.jpg
Channel distortion: RMSE
red: 2833.91 (0.0432427)
green: 2401.45 (0.0366438)
blue: 2560.43 (0.0390696)
all: 2604.73 (0.0397456)
あるいは、赤チャンネルの歪みだけが欲しい場合は、次のコマンドを使います:
$ magick compare -channel red -metric PSNR rose.jpg reconstruct.jpg difference.png
27.2817 (0.227348)
あるいは、画像全体の歪みだけが欲しい場合は、次のコマンドを使います:
$ magick compare -metric PSNR rose.jpg reconstruct.jpg difference.png
28.0142 (0.233452)
再構成画像が元画像のサブ画像である場合、compare プログラムは最良一致のオフセットを返します。さらに、完全一致の位置を真っ白に、まったく一致しない場合を黒に、それ以外を中間のグレーレベルで表す類似度画像を返します:
$ magick compare -metric NCC -subimage-search logo.png hat.png similarity.pfm
0 (0) @ 417,44 [0]
$ magick identify -define identify:locate=maximum -define identify:limit=1 similarity.pfm
Channel maximum locations:
Gray: 65532.9 (0.999967) 417,44
角括弧内の値は、正規化された類似度指標です。
なお、類似度検索は仮想ページオフセットを考慮します。期待どおりの結果を得るには、画像のページオフセットが +0+0 であることを確認してください。
ImageMagick のサブ画像検索機能は、その反復的な性質のため、かなり遅くなることがあります。ただし、お使いの ImageMagick が FFTW(Fastest Fourier Transform in the West)サポートを含み、指標が DPC、MSE、NCC、RMSE、PHASE、PSNR のいずれかであれば、処理時間が桁違いに高速化されることが期待できます。詳しい議論は Accelerated Subimage-search Compare を参照してください。
-subimage-search オプションが有効でない場合、ImageMagick は 2 枚の画像を、ページオフセット(通常は左上隅)から始めて、ピクセル単位で直接比較します。画像のサイズが異なる場合、小さい方の画像が大きい方に整列されます。小さい画像の余分な領域は仮想ピクセルとして扱われます。これらの仮想ピクセルは、選択した仮想ピクセル方式に従って処理され、比較で不一致領域がどう扱われるかに影響します。その結果、これらの追加領域が比較指標に影響し、全体の類似度評価に影響を及ぼす可能性があります。本物のピクセルだけを比較するには、-define compare:virtual-pixels=false を使ってください。
compare の使用例は Examples of ImageMagick Usage でさらに見つかります。
2 枚の画像は、指定した指標と fuzz 値による差分が 0 のとき類似とみなされます。ただし、正規化相互相関指標(NCC)は例外で、正規化相互相関が 1 のとき類似とみなされます。既定の指標は NCC です。
compare プログラムは、エラー時に 2、画像が類似していれば 0、類似していなければ 0 から 1 の間の値を返します。
オプション一覧
compare コマンドは以下のオプションを認識します。各オプションをクリックすると、その動作の詳細を確認できます。
| オプション | 説明 |
|---|---|
| -adjoin | 複数画像を 1 つのマルチイメージファイルに結合する |
| -alpha | アルファチャンネルの on, activate, off, deactivate, set, opaque, copy, transparent, extract, background, shape の指定 |
| -authenticate value | このパスワードで画像を復号する |
| -auto-orient | 画像の向きを自動調整する |
| -background color | 背景色 |
| -brightness-contrast geometry | 画像の明るさ/コントラストを改善する |
| -channel type | 選択した画像チャンネルにオプションを適用する |
| -colorspace type | 画像の色空間を設定する |
| -compose operator | 画像の合成演算子を設定する |
| -crop geometry | 画像を切り抜く |
| -decipher filename | 暗号化ピクセルを平文に変換する |
| -debug events | 大量のデバッグ情報を表示する |
| -define format:option | 1 つ以上の画像フォーマットオプションを定義する |
| -density geometry | 画像の水平・垂直解像度 |
| -depth value | 画像のビット深度 |
| -dissimilarity-threshold value | (サブ)画像マッチングの最大歪み(既定 0.2) |
| -distort type coefficients | 画像を歪ませる |
| -encipher filename | 平文ピクセルを暗号化ピクセルに変換する |
| -extract geometry | 画像から領域を抽出する |
| -fuzz distance | この距離内の色は同一とみなす |
| -gravity type | テキストの水平・垂直配置 |
| -help | プログラムのオプションを表示する |
| -highlight-color color | この色でピクセルの差分を強調する |
| -identify | 画像のフォーマットと特性を識別する |
| -interlace type | 画像のインターレース方式の種別 |
| -level value | 画像のコントラストレベルを調整する |
| -limit type value | ピクセルキャッシュのリソース上限 |
| -log format | デバッグ情報の書式 |
| -lowlight-color color | この色でピクセルの差分を目立たなくする |
| -metric type | この指標で画像間の差分を測定する。既定の指標は RMSE。 |
| -negate | 各ピクセルを補色に置き換える |
| -profile filename | 画像プロファイルを追加・削除・適用する |
| -quality value | JPEG/MIFF/PNG の圧縮レベル |
| -quantize colorspace | この色空間で画像を減色する |
| -quiet | すべての警告メッセージを抑制する |
| -read-mask filename | 読み込みマスクを画像に関連付ける |
| -regard-warnings | 警告メッセージを重視する |
| -repage geometry | 画像キャンバスのサイズと位置 |
| -resize geometry | 画像をリサイズする |
| -respect-parentheses | 括弧の境界まで設定を有効に保つ |
| -rotate degrees | 画像に Paeth 回転を適用する |
| -sampling-factor geometry | 水平・垂直のサンプリング係数 |
| -seed value | 擬似乱数列の新しいシードを設定する |
| -separate | 画像チャンネルをグレースケール画像に分離する |
| -set attribute value | 画像属性を設定する |
| -sigmoidal-contrast geometry | ハイライトや影を飽和させずにコントラストを上げる |
| -similarity-threshold value | (サブ)画像マッチングの最小歪み(既定 0.0) |
| -size geometry | 画像の幅と高さ |
| -subimage-search | サブ画像を検索する |
| -synchronize | 画像をストレージデバイスに同期する |
| -taint | 画像を変更済みとマークする |
| -transparent-color color | 透明色 |
| -trim | 画像の縁をトリミングする |
| -verbose | 画像の詳細情報を表示する |
| -version | バージョン情報を表示する |
| -virtual-pixel method | 画像境界外のピクセルへのアクセス方法 |
| -write-mask filename | 書き込みマスクを画像に関連付ける |


