アルゴリズムに関するコメント
次の点に注意する必要がありますが、アルゴリズムは適切に見えます。
エッジ効果: アルゴリズムが、画像 A の大部分が画像 B と重ならないような一致を優先しないようにする必要があります。たとえば、平均類似度を計算し、変換を制約して、ピクセルの少なくとも 50% が重ならないようにすることができます。重なります。
計算の複雑さ。考慮すべき多くの平行移動と回転が存在する可能性があり、このアルゴリズムは実際には遅すぎる可能性があります。
ワープの種類。アプリケーションによっては、平行移動と回転だけでなく、視点/照明の変更も考慮する必要がある場合があります。
加速度
同様のアルゴリズムがビデオ エンコーダーで一般的に使用されていますが、ほとんどのエンコーダーは回転/視点の変更を無視し、翻訳のみを検索します。
非常に一般的に使用される 1 つのアプローチは、最適な一致を求める勾配検索を行うことです。つまり、平行移動/回転をいくつかの異なる方法で微調整してみて (たとえば、左/右/上/下に 16 ピクセルずつ)、最適な一致を新しい開始点として選択します。その後、このプロセスを数回繰り返します。一致を改善できない場合は、微調整のサイズを小さくして、もう一度やり直してください。
代替アルゴリズム
アプリケーションによっては、いくつかの代替方法を検討する必要がある場合があります。
ステレオマッチング。2 つの画像がステレオ カメラからのものである場合、実際には一方向のみを検索する必要があります (OpenCV はこれを行うための便利な方法を提供します)。
既知のパターン。両方の画像に既知のパターン (チェス盤など) を配置できる場合は、それらを登録するのがはるかに簡単になります (また、OpenCV は特定の種類のパターンを見つけて登録する方法を提供します)。
特徴点マッチング。画像レジストレーションの一般的なアプローチは、特徴的なポイント (コーナーの種類やより一般的な関心のある場所など) を検索し、2 つの画像で一致する特徴的なポイントを見つけようとすることです。たとえば、OpenCV にはSURF機能を検出する関数が含まれています。Google は、ローリング シャッター ノイズを除去するためにこの種のアプローチを使用することに関する優れた論文を公開しています。この論文を読むことをお勧めします。