- ベストアンサー
Javaでの画像比較方法
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
例をみると特定の状態(選択状態)のコントロールがいくつあるかを画像から調べるといった用途に見えます。 表示モードにもよるかも知れませんがピクセルの単純一致で間に合ったりしませんか? 単純一致でよいならテンプレートマッチングで対象画像のある領域とテンプレートを比較する際に、対応するピクセルの不一致を検出した際に直ちに次に画像位置の計算に移れるので単純に実装しても非常に高速に判定できる気がします。そうではなくある程度の誤差を許容する場合でも例えばテンプレートと比較画像のピクセルの差を無条件に累積するのではなく、ピクセル値同志の差がある一定以上になった場合に「一致しない」と見切って次の位置の計算に移るといった戦略で高速化できる気がします。 もうひとつテンプレート画像に特徴があるならその特徴を生かす検索が考えられると思います。例のようなコントロール画像であれば大部分が背景色なので、テンプレートから背景色とは異なる特徴的なピクセルを最初に探しておき、比較画像の中からそのピクセル値に近いピクセルをサーチしつつ見つかった位置でのみテンプレートとの比較を行うという方法が考えられると思います。
お礼
迅速な回答、ありがとうございました。 ご提示の通りに動作するメソッドを追加したところ、1秒以内でレスポンスがありました。 テンプレートマッチングは大分前に作ってライブラリにしていたので、中身をすっかり忘れていました。。。