「入力」画像のセットを別の「ソース」画像セットと比較し、それらのいずれかに一致があるかどうかを確認する必要があるソフトウェア プロジェクトに取り組んでいます。ソース画像は、いかなる方法でも編集/変更できません。入力画像は、一致を見つけるためにスケーリング/トリミングできます。画像は、任意のサイズの BMP、JPEG、GIF、PNG、TIFF にすることができます。
制約: 外部ライブラリの使用は許可されていません。ImageMagick は例外であり、使用できます。
Java/Python を使用する予定です。このソフトウェアは、純粋にコマンドライン ベースです。
私はSOといくつかの一般的な画像比較アルゴリズムを読んでいました。2つのアプローチを取る予定です。1. ヒストグラム/バケットを使用して、比較する 2 つの画像の RGB 値を調べることができます。
2. SIFT/SURF を使用してキーポイント記述子を見つけ、それらの間のユークリッド距離を見つけ、結果の距離に基づいて結果を出力します。
比較する 2 つの画像は、異なる形式にすることができます。直感的な考えでは、分析/比較の前に、2 つの画像を共通の形式に変換する必要があります。たとえば、2 つの入力画像が BMP と JPEG の場合、BMP をJPEG。これは、前処理ステップと考えることができます。
私の質問: 一般的な形式への画像変換は必要ですか? 異なる形式の 2 つの画像を比較できますか? 比較する前に変換する必要がある場合、高品質 (BMP) から低品質 (JPEG) に比較するという私の仮定は正しいですか? また、誰かが画像変換のアルゴリズムを提案してくれると助かります。
EDIT
パターン画像がソース画像で見つかった場合、一致が見つかったと言われます。たとえば、ソース画像が 1 人の選手がいるサッカー場で構成されているとします。パターン画像にソース画像とまったく同じプレーヤーが含まれている場合、そのプレーヤーは一致しています。