Отображать видеокадр RGB с помощью камеры opencv и kinect primesense?

У меня есть проект OpenCV, написанный на OpenCV 2.4.6 (без OpenNI) в Visual Studio 2012.

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

  1. Можно ли использовать камеру Kinect Prime Sense без использования 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. Благодарю.

2 ответа

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

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

Для дальнейшего ознакомления я бы хотел направить вас к этой теме: Как получить видеоизображение kinect и изображение глубины с помощью openCV C++?

НТН

  1. НЕТ (если вы пытаетесь VideoCapture capture(CV_CAP_OPENNI); это просто зависит от этого. есть libfreenect или что-то подобное, но это уже другая история..)

  2. ДА (вот почему это не удалось, вероятно) .

также проверьте: cout << cv::getBuildInformation(); чтобы увидеть, были ли ваши opencv библиотеки собраны с поддержкой openni:

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

вам придется пересобрать opencv из src(с установленным openni sdk), если там ответ "нет"

Другие вопросы по тегам