OpenCV не обнаруживает FireWire веб-камеру на Linux

0

Я подключил камеру через FireWire и попытался получить к ней доступ с помощью opencv. Камера обнаружена в кориандре и может получить видеопоток. Ниже приведен код, который я использовал

    #include "/home/iiith/opencv-2.4.9/include/opencv/cv.h"
    #include "/home/iiith/opencv-2.4.9/include/opencv/highgui.h"
    #include "cxcore.h"
    #include <iostream>

    using namespace cv;
    using namespace std;

    int main(int,char**)
    {
        VideoCapture cap(0);
        if(!cap.isOpened())
            cout<<"Camera not detected"<<endl;
        while(1)
        {
            Mat frame;
            namedWindow("display",1);
            cap >> frame;
            imshow("display",frame);
            waitKey(0); 
        }
    }

Когда я запускаю этот код, видео транслируется с веб-камеры вместо моей камеры FireWire. Я попробовал тот же код в моей системе друзей, и там была обнаружена камера FireWire. Я тестировал настройки с помощью различных команд, таких как testlibraw, lsmod, и они все одинаковы. Даже версия Opencv, 2.4.9, Ubuntu 12.04 все одинаковы. Это действительно странно, и я на это на 2 дня. Может кто-нибудь, пожалуйста, скажите мне, какая разница? Как получить внешнюю камеру, обнаруженную в opencv? Заранее спасибо.

Примечание. Имеет ли это что-то иметь с настройкой камеры по умолчанию? Благодарю.

Обновление 1: Крышка VideoCapture (1) дает следующую ошибку: HIGHGUI ERROR: V4L: индекс 1 неверен!

Означает ли это, что камера не распознается?

  • 2
    не связаны, но, пожалуйста, никогда не используйте абсолютный путь во включениях, также не используйте устаревшие заголовки opencv c-api, но "opencv2 / highgui / highgui.hpp"
  • 2
    VideoCapture cap(0); означает камеру по умолчанию, VideoCapture cap(1); должна быть другая камера, это работа?
Показать ещё 10 комментариев
Теги:
opencv
camera
firewire

2 ответа

1

Во-первых, вы должны быть уверены, что камера распознана

  • отключите камеру и подождите несколько секунд;
  • открытый терминал и цифра:
    • смотреть dmesg
    • lspci | grep -E -i "(1394 | firewire)" # это может дать вам что-то
  • подключите устройство и прочитайте новую запись на терминале
  • если ваше устройство распознано, вы можете запустить команду следующим образом:
    • mplayer tv:/ / -tv driver = v4l2: width = 352: height = 288
0

Возможная проблема может заключаться в том, что камера, подключенная через FireWire, не распознается системой.

Сначала попробуйте увидеть выход камеры с помощью AMcap или другого программного обеспечения для веб-камеры и проверьте, можете ли вы это увидеть.

Если вы не видите видео в amcap, это означает, что драйверы этой конкретной камеры отсутствуют.

  • 0
    Я добавил, что смог распознать камеру через кориандр.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню