私は2つの画像の違いを見つけようとしています。
シナリオ: 2 つの画像があるとします。1 つは背景の画像で、もう 1 つは背景の前にいる人物の画像です。人の位置を取得できるように 2 つの画像を差し引きたいとします。つまり、プログラムは次のことができます。人が立っていた場所を検出し、減算された画像を出力として提供します。
私が思いついたコードは、カメラから2つの画像を取得してサイズを変更し、両方の画像をグレースケールに変換しています。この後どうするか知りたかった。OpenCV が提供する減算関数を確認しましたが、配列を入力として使用するため、進行方法がわかりません。
私が書いたコードは次のとおりです。
cap>>frame; //gets the first image
cv::cvtColor(frame,frame,CV_RGB2GRAY); //converts it to gray scale
cv::resize(frame,frame,Size(30,30)); //re-sizes it
cap>>frame2;//gets the second image
cv::cvtColor(frame2,frame2,CV_RGB2GRAY); //converts it to gray scale
cv::resize(frame2,frame2,Size(30,30)); //re-sizes it
今、私は単純に次のような減算関数を使用しますか?
cv::subtract(frame_gray,frame,frame);
または、最初にいくつかのフィルターを適用してから、減算機能を使用しますか?