2015-01-08 5 views
0

라이브 비디오 피드에서 SURF 피쳐 포인트를 감지하려고하는데,이를 달성하는 방법에 대한 자습서를 찾을 수 없습니다.실시간 비디오에서 SURF 포인트 감지하기

int minHessian = 400; 
    cv::SurfFeatureDetector detector(minHessian); 
    std::vector<cv::KeyPoint> keypoints_1; 
    detector.detect(img_1, keypoints_1); 
    cv::Mat img_keypoints_1; 
    drawKeypoints(img_1, keypoints_1, img_keypoints_1); 

하지만 난 당신이 cvCaptureFromCAM()를 사용하여 비디오 피드이 어떻게 적용되는지 확실하지 않다 : 난 아직도 이미지를 그들에 감지 할 수 있어요

?

+0

글쎄, 참조 문서를 조금 더 철저히 조사하면 (또는 SURF 포인트 주제에 관한 좋은 지침서를 얻는 것), 연속적으로 질문하는 것보다 어떻습니까? –

+0

라이브 스트림을 읽는 방법을 배우려면 예제 코드에서 처리하는 것처럼 단일 이미지 만 있으면됩니다. – Micka

+0

현재 라이브 스트림을 읽을 수 있으므로 각 프레임을 별도의 이미지로 취급합니까? – Colin747

답변

0

웹캠으로 촬영 한 프레임은 하나의 이미지에 지나지 않습니다. 따라서 단일 이미지로 수행 할 수있는 작업은 모두 동일한 방법으로 프레임에서 동일한 작업을 수행 할 수 있습니다.

다음은 무한 for loop에서 웹캠을 통해 frame을받는 코드입니다. 기본적으로 프레임을 읽은 다음 단일 이미지에서 수행 한 것과 동일한 작업을 수행하면됩니다.

Mat frame; 
VideoCapture cap(0); // open the default camera 
if (!cap.isOpened()) // check if we succeeded 
    return -1; 

for (;;) 
{ 

    cap.read(frame); // get a new frame from camera 
    if (frame.empty()) continue; 

    //Now do the same thing with each frame which you did with your single image. 

} 
+0

바로 감사합니다. – Colin747