배경 차감을 수행하기 위해 프레임 차이 방법을 구현하려고합니다. 문제는 창에 프레임 차이를 표시하려고 할 때입니다. 나는 어떤 출력 [흑색 창]을 얻는다. 이것은 구현 된 코드이다프레임 차이 방법 [배경 뺄셈]
#include <highgui.h>
#include <iostream>
using namespace cv;
int main()
{
VideoCapture cap("Camouflage/b%05d.bmp");
if(!cap.isOpened())
{
std::cout<<"failed to open image sequence";
return 1;
}
char c;
Mat frame1, frame2, frame3;
namedWindow("Original Frames",1);
namedWindow("Frame Difference",1);
while(1)
{
cap>>frame1;
if(frame1.empty())
{
std::cout<<"Frame1Message->End of sequence"<<std::endl;
break;
}
cap>>frame2;
if(frame2.empty())
{
std::cout<<"Frame2Message->End of sequence"<<std::endl;
break;
}
// absdiff(frame1,frame2,frame3);
frame3=frame1.clone();
frame3=frame3-frame2;
//imwrite("C:/Users/hp/Desktop/file
imshow("Frame Difference",frame3);
c=waitKey(90);
if(c==27)
break;
imshow("Original Frames",frame1);
c=waitKey(90);
if(c==27)
break;
}
}
누군가 나를 도와 줄 수 있냐? .. 나는 찔 렸다.
UPDATE
.I이 늘 이미지의 순서를 읽을 수 있지만이 worked.This 생각VideoCapture
날 그래서 난 cvCapture
사용을 위해 내가 무슨 짓을 작동하지 않았다
CvCapture* capture = cvCreateFileCapture("Camouflage/b%05d.bmp");
이미지 이름 b00000, b00010, b00001 등이 될 수 있습니다.
프레임 3의 값이 매우 작을 수 있습니다. 시도하십시오 imshow ("프레임 차이", frame3 * 100); – berak
방금 해봤습니다. 동일한 출력을 얻는 것. –