ここでは、位相相関が最善の策になると思います。これは、2 つの画像間の位相シフト (つまり、平行移動) を示すように設計されています。周波数空間で動作するため、特徴検出よりもノイズに対してはるかに回復力があります (ただし、耐性はありません)。一方、特徴検出器は空間的に動作します。もう 1 つの利点は、特徴検出方法と比較して非常に高速であることです。ここにあるサブピクセル精度の OpenCV トランクで利用可能な実装があります。
ただし、画像は中央の折り目を除いてほとんど「特徴がない」ため、位相相関でさえ問題が発生する可能性があります。吹雪の中で翻訳を検出しようとするようなものだと考えてください。白いものしか見えない場合は、翻訳したことがまったくわからないため、ホワイトアウトという用語が使用されます。あなたの場合、アルゴリズムは「グリーンアウト」に悩まされる可能性があります:)
カメラの設定を調整して、暗い場所でうまく機能するようにできますか? アイリスを全開にしていますか?低いフレームレートで生活できますか? 露出時間を長く設定すると、カメラはより多くの光を集めることができるため、モーション ブラーを追加することを犠牲にして、より多くの機能を利用できます。または、低照度がデフォルトの環境である場合、IR カメラのようにこの環境向けに設計されたものが必要になる可能性がありますが、それらは高価になる可能性があります。それ以外には、大きなレンズと長時間露光があなたの友達です:)
画像のコントラストを改善するには、ヒストグラムの均等化が重要な場合があります。ただし、ノイズを増幅するだけの場合もあります。OpenCV には、 equalizeHistと呼ばれるグローバル ヒストグラム均等化関数があります。よりローカライズされた実装については、Contrast Limited Adaptive Histogram Equalization (略してCLAHE)を参照してください。ここにそれに関する良い記事があります。このページには、いくつかの良い例といくつかのコードがあります。