2012-02-06 5 views
1

OpenCV에서 C++를 사용하는 비디오 처리 응용 프로그램을하고 있습니다. 이것은 웹캠을 초기화하는 코딩 방법입니다.OpenCV에서 비디오 스트리밍이 느립니다.

storage = cvCreateMemStorage(0); 
capture = cvCaptureFromCAM(1); 

cvNamedWindow("video", 1); 

while(key != 'q') { 
    frame = cvQueryFrame(capture); 
    if(!frame) { 
     fprintf(stderr, "Cannot query frame!\n"); 
     break; 
    } 
    cvFlip(frame, frame, 1); 
    frame->origin = 0; 
    key = cvWaitKey(1); 
} 

웹캠에서 프레임을 캡처하는 속도를 높이려면 누구에게도 해결책을 제안 할 수 있습니까? OpenCV 응용 프로그램 웹 캠 비디오 스트림을 사용하는 실제 웹 캠 비디오 스트림과 비교할 때 3 초 지연이 있습니다.

감사합니다.

답변

0

사용중인 opencv의 버전은 무엇입니까? 인텔 스레딩 구성 요소 (tbb.dll)를 사용하는 빌드를 사용하고 있습니까? 그렇지 않다면 사용하십시오. 바로 속도 향상입니다.

당신은 또한 당신이 얻을 최대 속도의 유형을 볼 수있는 베어 본 코드를 시도 할 수 있습니다 :

저장 = cvCreateMemStorage (0); capture = cvCaptureFromCAM (1);

while (1) { frame = cvQueryFrame (capture); cvWaitKey (1); }

이외에도 opencv에 대한 C++ 인터페이스를 사용하는 것이 좋습니다. c 인터페이스는 매우 추악하고 느릴 수 있습니다.

+0

안녕 그것은 실제로 속도 문제는 비디오에서만 개체를 ​​검색하려고 할 때 온다. 내가 사용자의 얼굴을 감지하려고하는 것처럼 CvSeq * faces = cvHaarDetectObjects (img, \t 캐스케이드, 저장소, 1.1, 3, 0, cvSize (40, 40)); 이 코드는 비디오 속도를 낮 춥니 다. 그게 뭐가 잘못 됐는지 알아? 감사합니다. – Gimz

+0

안녕하세요, 1.5로 배율을 높이면 비디오 스트림의 속도를 높일 수있었습니다 :) thurx for ur help – Gimz

관련 문제