2 つの異なる灰色の画像を取得し、2 つの違いのマスクを作成する方法を考えていました。どんな助けでも大歓迎です。
6936 次
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 に答える