OpenCV を使用して Nvidia Jetson TK1 で ASUS Xtion からビデオをキャプチャするのに問題があります (ラップトップでも -- 以下の更新を参照してください)。次のコードを実行すると、常に「エラー」が発生します。
#include <opencv2/core/core.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <iostream>
int main()
{
cv::VideoCapture input;
input.open(CV_CAP_OPENNI_ASUS);
if(!input.isOpened())
{
std::cout << "Error.\n";
return -1;
}
}
JetPack と共にインストールされた OpenCV2 を使用しています。こちらの手順に従って OpenNI2 をインストールしました(ソースからビルド)。SimpleViewer やその他のプログラムを問題なく実行できるので、Asus は通信しています。ここのチュートリアル 2 に従って、ファイルから OpenCV プログラムにビデオ イメージをロードすることはできますが、Asus を読み取ることはできません。実行lsusb
すると、デバイスがアクティブであることが示されます。
Bus 002 Device 002: ID 1d27:0601 ASUS
ROS内からAsusからの読み取りに成功しました。
このスレッドを見たことがありますが、役に立ちません ( _ASUS
open マクロに を組み込みました)。
[更新] それ以来、ubuntu ラップトップ (14.04) に openNI2 と OpenCV3 をロードしました。繰り返しますが、SimpleViewer は問題なく動作します。内蔵カメラは正常に動作します (input.open(0)
デフォルト カメラにアクセスするため)。唯一うまくいかないのは、OpenCV プログラム内から Asus を読み取ることです。
:ぶつぶつ:
次に何を試すべきかについての提案はありますか?明らかな何かが欠けていると確信しています-デバッグの助けをいただければ幸いです。