는이 코드를OpenCV의 동시에
while (true)
{
cv::Mat frame1,frame2,dst,temp;
if (!input_video.read(frame1))
{
fprintf(stderr, "Video has Finished .\n");
getchar();
return -1;
}
if (!input_video.read(frame2))
{
fprintf(stderr, "Video has Finished .\n");
getchar();
return -1;
}
cv::cvtColor(frame1,frame1,CV_RGB2GRAY) ;
cv::cvtColor(frame2,frame2,CV_RGB2GRAY) ;
cv::subtract(frame2,frame1,dst);
cv::imshow("F1",frame1);
cv::imshow("F2",frame2);
cv::imshow("dst",dst);
cv::waitKey();
}
을 작성하고 내가 (안 카메라하지만 내 하드 디스크에서 비디오) 비디오 프레임 1을 읽고 있어요 때, 같은 프레임 2입니다했습니다 !!!
"읽기"메서드가 frame2에 대해 동일한 프레임을 반환하는 이유를 모르겠습니다. 그래서 감산 된 이미지는 항상 빈 그림입니다 !!!
순차적 프레임을 동시에 읽는 데 특별한 조치를 취해야합니까? 예를 들어 내가 그 프레임에 도착하기 위해 다른 프레임이 줄을 사용 읽고 싶은 때마다 : 그렇다면
input_video.set(CV_CAP_PROP_POS_FRAMES,current_frame+1);
, 다른 방법이 일을하지가?!
감사
http://stackoverflow.com/q/11469281/2065121 –
그래, 난 그 읽었습니다하지만 대답은 근무하지 않았다 나! 이 코드에서 결과는 항상 0입니다 (심지어 키 프레임 !!!). frame1, frame2는 항상 동일합니다 ... – PsP