下面給出的是我用來查找2個圖像之間區別的代碼。圖像操作概述
#include "cv.h"
#include "highgui.h"
#include <stdio.h>
#include<iostream>
int main()
{
char a,b;
cv::Mat frame;
cv::Mat frame2;
VideoCapture cap(0);
if(!cap.isOpened())
{
cout<<"Camera is not connected"<<endl;
getchar();
exit(0);
}
Mat edges;
namedWindow("Camera Feed",1);
cout<<"Ready for background?(y/Y)"<<endl;
cin>>a;
if(a=='y'||a=='Y')
{
cap>>frame;
cv::cvtColor(frame,frame,CV_RGB2GRAY);
cv::GaussianBlur(frame,frame,cv::Size(51,51),2.00,0,BORDER_DEFAULT);
}
cv::waitKey(5000);
cout<<"Ready for foreground?(y/Y)"<<endl;
cin>>b;
if(b=='y'||b=='Y')
{
cap>>frame2;
cv::cvtColor(frame2,frame2,CV_RGB2GRAY);
cv::GaussianBlur(frame2,frame2,cv::Size(51,51),2.00,0,BORDER_DEFAULT);
}
cv::Mat frame3;
cv::absdiff(frame,frame2,frame3);
imwrite("img_bw.jpg",frame3);
return 0;
}
輸出結果類似於this。 我想知道是否有任何方法可以畫出像身體輪廓的東西。謝謝。
是不是你的臉部分有點暗? – 2012-07-13 05:23:03
是的,我認爲這是因爲背景中的玻璃。它不正確? – 2012-07-13 05:27:15
什麼玻璃?鏡子?是背景減法的結果嗎? – 2012-07-13 05:29:12