我正在尝试找出 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);
还是我先应用一些过滤器然后使用减法功能?