2013-09-01 2 views
0

저는 Creative Sync HD를 가지고 있고 OpenCV가 640x480 이상의 해상도를 지원하지 않는 것을 보았습니다. 솔루션 - videoinput.lib를 찾았지만 사용 방법을 모릅니다. 방금 VC 2008 용 컴파일 된 lib를 다운로드했지만, 2012 년에 작업하고 있습니다 (아마도 문제 일 것입니다). 자, .h을 프로젝트에 넣고 .lib을 프로그램 파일의 VC11 lib 폴더에 넣습니다. 링커로 가서 추가 종속성에 lib를 추가합니다. 이제 코드를 작성하려고했지만 videoinput에 대한 문서를 찾을 수 없으며 OpenCV도별로 좋지 않습니다. 누군가가 간단한 코드를 사용하여 작동하는지 확인할 수 있습니까? 나는 사용했다 :OpenCV + VideoInput.lib HD 카메라

#include <stdafx.h> 
#include "videoInput.h" 
#include "opencv/cv.h" 
#include "opencv/highgui.h" 

#include "opencv2\opencv.hpp" 

int main() 
{ 
    videoInput VI; 
    int numDevices = VI.listDevices(); 
    int device1= 0; 
    VI.setupDevice(device1); 
    int width = VI.getWidth(device1); 
    int height = VI.getHeight(device1); 
    IplImage* image= cvCreateImage(cvSize(width, height), 8, 3); 
    unsigned char* yourBuffer = new unsigned char[VI.getSize(device1)]; 
    cvNamedWindow("test"); 
    while(1) 
    { 
     VI.getPixels(device1, yourBuffer, false, false); 
     image-&gt;imageData = (char*)yourBuffer; 
     cvConvertImage(image, image, CV_CVTIMG_FLIP); 
     cvShowImage("test", image); 
     if(cvWaitKey(15)==27) break; 
    } 

    VI.stopDevice(device1); 
    cvDestroyWindow("test"); 
    cvReleaseImage(&amp;image); 

    return 0; 
} 

그러나 나는 많은 오류 (gt, amp, imagedata undefined)를 가지고있다. 어쩌면 videoinput.lib를 잘못 설치했을 수도 있습니다. 나는 OpenCV가 잘 작동한다고 확신하고 최신 버전 (2.4.6)을 사용한다.

답변

1

VideoInput lib는 이미 Opencv의 일부이며 Windows의 기본 Capture 구현입니다.

그래서 다시 컴파일하면 원래 문제가 해결되지 않습니다.

+0

그럼 어떻게해야합니까? 나는 이것을 위해 카메라를 샀다. 이미 OpenCV에 있다면 HD 캡처를 어떻게 사용할 수 있습니까? – Noskol

+0

해상도를 변경해 보셨습니까? VideoCapture cap (0) \t cap.set (CV_CAP_FRAME_WIDTH, 640); \t cap.set (CV_CAP_FRAME_HEIGHT, 480); \t // 원하는 해상도로 시도해보고 지원되는지 확인하십시오. – berak

+0

CvCapture * capture = cvCaptureFromCAM (0); \t cvSetCaptureProperty (캡처, CV_CAP_PROP_FRAME_WIDTH, 1280); \t cvSetCaptureProperty (캡처, CV_CAP_PROP_FRAME_HEIGHT, 720); 방금이 코드 줄을 추가했습니다. VideoCapture cap (0)을 사용합니다. 하지만 여전히 작동합니다. 나는 캡처의 다른 방법으로 해상도를 정의 할 수있는 카메라이기 때문에 추측합니다. – Noskol