OpenCV не распознает камеру в BeagleBone

Я написал следующий код для использования камеры PlayStation Eye через BeagleBone:

#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <errno.h>
#include <fcntl.h>
#include <termios.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <netinet/in.h>
#include "opencv/cv.h"
#include "opencv/highgui.h"

using namespace cv;
using namespace std;

void inputSetup(int setup);

int main(int argc, char *argv[])
{
    CvCapture *capture;
    Mat img;

    capture = cvCaptureFromCAM(-1);
    if (capture){
        printf("mmm...\n");
        inputSetup(1);
        img = cvQueryFrame(capture);
    }

    while (1);

    return 0;
}

void inputSetup(int setup)
{
    static struct termios oldt, newt;
    if (setup) {
        tcgetattr(STDIN_FILENO, &oldt);
        newt = oldt;
        newt.c_lflag &= ~(ICANON);
        tcsetattr( STDIN_FILENO, TCSANOW, &newt);
    }
    else {
        tcsetattr( STDIN_FILENO, TCSANOW, &oldt);
    }
}

Проблема в том, что он не распознает камеру, так как код не входит в первое «если» (тот, который печатает «ммм...»). Я уже пробовал с "capture = cvCaptureFromCAM(0);", но тоже не работает.

Я компилирую код с помощью следующей команды:

g++ -Wall -g -o CamaraTest CamaraTest.cpp `pkg-config --cflags --libs opencv`

Как решить эту проблему?


person gus    schedule 30.01.2013    source источник


Ответы (1)


Используйте последний репозиторий OpenCV Git. Были проблемы в драйверах камеры, но большинство из них уже исправлено.

person tomriddle_1234    schedule 30.01.2013
comment
Спасибо за ответы. Я новичок в работе с репозиториями и установке их в Linux, можете ли вы прислать мне ссылку или любую информацию, чтобы узнать, как получить последнюю версию openCV и как ее установить (специально для дистрибутива Angstrom)? В настоящее время я использую библиотеки openCV, которые поставляются с дистрибутивом. - person gus; 30.01.2013