Мне удалось скомпилировать и установить opencv с OpenNI2 в Lubunutu (архитектура Arm). Я протестировал пример, представленный в /samples/cpp/openni_capture.cpp, и он успешно общается с датчиком и отображает информацию о нем. Тем не менее, программа достигает точки непосредственно перед показом изображений / данных, и ничего не происходит, программа зависает в строке если (! capture.grab () .
for(;;)
{
...
if( !capture.grab() )
{
cout << "Can not grab images." << endl;
return -1;
}
else
{
if( retrievedImageFlags[0] && capture.retrieve( depthMap, CAP_OPENNI_DEPTH_MAP ) )
{
const float scaleFactor = 0.05f;
Mat show; depthMap.convertTo( show, CV_8UC1, scaleFactor );
imshow( "depth map", show );
}
...
}
Я написал несколько строк, чтобы убедиться, что проблема в этой функции, и это, я совершенно уверен. Это даже не показывает сообщение об ошибке.
Кто-нибудь знает, что происходит или как это решить?
Спасибо
Ну, на случай, если кто-то столкнется с той же проблемой, я решил ее, используя граббер, созданный специально для Odroid U3 (Arm), доступный на http://forum.odroid.com/viewtopic.php?f=15&т = 2090
В основном код остается тем же самым, но вместо того, чтобы использовать класс VideoCapture из OpenCV, я использовал один из приведенных выше.
Наконец я могу использовать opencv, pcl и ros с датчиком asus на плате Arm =).
ура