4

2 つの異なる灰色の画像を取得し、2 つの違いのマスクを作成する方法を考えていました。どんな助けでも大歓迎です。

4

1 に答える 1

4

カメラが静止しており、画像が非常に良好であると仮定すると、要素ごとの減算を使用して 2 つの画像の違いを見つけることができます。OpenCV の C++ API を使用すると、次のようになります (注: このコードはテストされていません)。

void FindDifference(cv::Mat src1, cv::Mat src2, cv::Mat &dst, int threshold) {
    dst = cv::abs(src2 - src1);
    cv::threshold(dst, dst, threshold, 255, cv::THRESH_BINARY);
}

の値を微調整して、thresholdノイズによる誤検知を減らすことができます。それでも誤検知が多すぎる場合は、モーション推定画像レジストレーションを調べて、2 つの画像を位置合わせする必要があります。

私は EmuCV の API に詳しくありませんが、上記のコードを API 呼び出しに変換するのはかなり簡単です。

于 2011-04-21T06:14:12.283 に答える