2013-11-21 10 views
0

У меня есть OpenCV проект, написанный с OpenCV 2.4.6 (без OpenNI) в Visual Studio 2012.Чтобы отобразить рамку видео RGB с помощью камеры opencv и kinect primesense?

Project использует встроенную веб-камеру, но теперь я хочу использовать Kinect камеру для RGB кадры вместо веб-камеры.

  1. Можно ли использовать камеру с понятием Kinect без использования OpenNI?
  2. Нужно ли устанавливать OpenNI и связывать его с OpenCV и все, что нужно для использования камеры RGB от устройства Prime sense?

В настоящее время я пишу следующий код:

VideoCapture capture(CV_CAP_OPENNI); // I have tried with capture(0), capture(1) 

if(!(capture.isOpened())){ 
    cout << "OPENCV:Cannot open the WebCamera" << endl; 
    return -1; 
} 

И результат в том, что он не в состоянии открыть захват и он не здесь. Я новичок во всем этом и объясню, нужно ли мне что-либо устанавливать или включать что-нибудь? Я уже установил драйверы Prime sense. Благодарю.

+0

Какая ошибка вы получаете ..? – scap3y

+0

ошибки нет, capture.isopened() is false .... не удалось открыть захват – UnresolvedSymbols

ответ

1

Вы можете считывать данные из датчика Kinect, используя любой из этих 3-х методов,

  1. Microsoft Kinect для Windows SDK
  2. libfreenect API OpenKinect в
  3. OpenNI + OpenKinect

Для дальнейшего ссылка, я бы хотел направить вас к этой теме: How to take kinect video image and depth image with openCV c++?

НТН

+0

Спасибо за ссылку. но нет ли способа обработать камеру с прайм-центром как веб-камеру, и она должна работать? – UnresolvedSymbols

+0

Нет, потому что формат данных, поступающий от Kinect и обычной камеры, совершенно другой. Вам понадобится класс читателя, который может правильно прочитать изображение. – scap3y

+0

Хорошо, спасибо! Я бы установил openNI и заработал :) – UnresolvedSymbols

0
  1. NO (если вы пытаетесь VideoCapture capture(CV_CAP_OPENNI); это зависит только от этого. есть libfreenect или такой, как хорошо, но это уже другая история ..)

  2. ДА (именно поэтому это не удалось, возможно).

также проверить: cout << cv::getBuildInformation();, чтобы увидеть, если ваши OpenCV ЛИЭС были построены с OpenNI поддержки:

Video I/O: 
    ... 
    OpenNI:      NO 
    OpenNI PrimeSensor Modules: NO 

вам придется восстанавливать OpenCV из ЦСИ (с OpenNI SDK установлен), если ответ «нет»

+0

Спасибо за ваш ответ. Мне нужно будет установить openNI! – UnresolvedSymbols

+1

lol, @UnresolvedSymbols, nomen est omen – berak

+0

еще раз, ответ @ scap3y тоже стоит подумать. если у вас уже установлена ​​какая-либо из других фреймворков, это скорее вопрос создания метода cv :: Mat from * their * capture, а не использования VideoCapture – berak