2013-07-28 4 views
0

У меня есть приложение JavaCV, использующее внешнюю камеру, но оно не работает ... Результат - черное изображение с камеры ... У меня есть другой проект, который использует тот же код, и это работает отлично ... я не understando, почему это не работает в моем новом проектеВнешняя камера не работает JavaCV

capture = cvCreateCameraCapture(1); 
imgCamera = cvQueryFrame(capture); 

код прост, первый захват изображения с внешнего веб-камеры и установить его в IplImage

почему это работает в проекте и не в другом?

ответ

0

Вы можете выполнить итерацию через всю вашу камеру, прикрепленную к вашей системе, а затем получить индекс для определенного устройства либо веб-камеру, либо внешнюю камеру и использовать ее в коде. Я даю вам пример код для этого

String cameraInformation = ""; 
int n = com.googlecode.javacv.cpp.videoInputLib.videoInput.listDevices(); 
for (int i = 0; i < n; i++) { 
      String info = com.googlecode.javacv.cpp.videoInputLib.videoInput 
        .getDeviceName(i); 
      //cameraInformation = info + " Device id:" + i + "\n"; 
      system.out.println("Your information for camera:"+info+" and device index is="+i); 
     } 

Отсюда вы пришли, чтобы узнать, что индекс которого устройство и использовать его в этом коде

capture = cvCreateCameraCapture(deviceIndex); 
imgCamera = cvQueryFrame(capture); 

Надеется, что это помогает

+0

это didin Я работаю ... Я хочу знать, почему камера работает в приложении и не работает в другом ... –

+0

Это потому, что вы жестко кодируете Индекс устройства в cvCreateCameraCapture (1); здесь вы предполагаете, что индекс устройства равен 1. Так что это может быть не так, если я подключу 2 внешних камеры, как вы узнаете, какое устройство вы хотите получить, и я думаю, что это причина. Выше кода расскажет вам, какая камера имеет индекс, затем используйте его соответственно. Надеюсь, что это поможет –

Смежные вопросы