crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> QCamera и Raspbian
x-8973
  опции профиля:
сообщение 1.9.2017, 8:39
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 25
Регистрация: 22.2.2013
Пользователь №: 3720

Спасибо сказали: 0 раз(а)




Репутация:   0  


Всем доброго времени суток. Снова ковыряю веб-камеру на Распберри. На этот раз нужно просто получить картинку, поэтому решил не заморачиваться с openCV, а использовать QtMultimedia и QCamera.
Обнаружилось, что нигде в Интернетах нет нормального гайда, как это устроить. Под Виндой все завелось с полпинка, а вот на Raspbian потею уже недели две. При попытке создать объект QCamera в консоль приложения вываливается следующее:
Раскрывающийся текст
OKLICK WEBCAM

(cameraTest:24081): GLib-GObject-WARNING **: invalid (NULL) pointer instance

(cameraTest:24081): GLib-GObject-CRITICAL **: g_signal_connect_data: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed

(cameraTest:24081): GStreamer-CRITICAL **: gst_object_ref_sink: assertion 'GST_IS_OBJECT (object)' failed

(cameraTest:24081): GStreamer-CRITICAL **: gst_element_get_bus: assertion 'GST_IS_ELEMENT (element)' failed

(cameraTest:24081): GStreamer-CRITICAL **: gst_bus_add_watch_full: assertion 'GST_IS_BUS (bus)' failed

(cameraTest:24081): GStreamer-CRITICAL **: gst_bus_set_sync_handler: assertion 'GST_IS_BUS (bus)' failed

(cameraTest:24081): GStreamer-CRITICAL **: gst_object_ref: assertion 'object != NULL' failed

(cameraTest:24081): GLib-GObject-CRITICAL **: g_object_set: assertion 'G_IS_OBJECT (object)' failed

(cameraTest:24081): GLib-GObject-CRITICAL **: g_object_set: assertion 'G_IS_OBJECT (object)' failed

(cameraTest:24081): GLib-GObject-CRITICAL **: g_object_get: assertion 'G_IS_OBJECT (object)' failed
xcb_connection_has_error() returned true
xcb_connection_has_error() returned true
xcb_connection_has_error() returned true

(cameraTest:24081): GLib-GObject-CRITICAL **: g_object_get: assertion 'G_IS_OBJECT (object)' failed


Первой строкой выводится название обнаруженной камеры. Соответственно, объект QCamera не работает, никакого файла с картинкой не появляется. Исходники:

main.cpp
Раскрывающийся текст
#include <QCoreApplication>
#include <iostream>
#include <QtMultimedia/QCamera>
#include <QtMultimedia/QCameraInfo>
#include <QtMultimedia/QCameraImageCapture>
#include <QList>
using namespace std;

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    QList<QCameraInfo> cameras = QCameraInfo::availableCameras();

    for (int i = 0; i < cameras.count(); i++)
    {
        cout << cameras.at(i).description().toLocal8Bit().data() << endl;
    }

    if (cameras.count())
    {
        QCamera *cam = new QCamera();
        cam->setCaptureMode(QCamera::CaptureStillImage);
        cam->start();
        QCameraImageCapture *capture = new QCameraImageCapture(cam);
        sudo pture->setCaptureDestination(QCameraImageCapture::CaptureToFile);
        cam->searchAndLock();
        capture->capture(QCoreApplication::applicationDirPath() + "/image.jpg");
        cam->unlock();
    }

    return 0;
}


cameraTest.pro
Раскрывающийся текст
#-------------------------------------------------
#
# Project created by QtCreator 2014-03-07T15:42:52
#
#-------------------------------------------------

QT       += core multimedia

TARGET = cameraTest
CONFIG   += console
CONFIG   -= app_bundle

TEMPLATE = app


SOURCES += main.cpp


Очень сильно опасаюсь, что проблема в отсутствии каких-то библиотек в системе, но в интернетах везде советуют только установить gstreamer со всеми плагинами, что я первым делом и сделал.
Собственно, вопрос: кто-нибудь вообще владеет полным списком того, что надо иметь в системе для работы QCamera? А то я уже столько хлама в систему поставил за эти две недели, что давно потерялся, что надо, а что нет.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
JohnZ
  опции профиля:
сообщение 8.9.2017, 13:24
Сообщение #2


Участник
**

Группа: Участник
Сообщений: 139
Регистрация: 19.7.2014
Пользователь №: 4190

Спасибо сказали: 10 раз(а)




Репутация:   0  


Привет ! Я тоже "сижу" на RPi 2 :) и судя по тому что по твоим словам под виндой завелось, в системе видимо не описано устройство, хотя оно и найдено системой. У меня такое было когда "игрался" с USB-сканером ШК и кассовым аппаратом. Покопайся в направлении /etc/udev/rules.d ! Когда я там прописал свй сканер и КА, они чудным образом начали работать, хотя до этого точно так-же находились системой и не фурычили. Правда драйвера им, я писал отдельно на базе libusb, и все "шаманства" :) делал через него. Если есть под руками USB камера - можно попробовать аналогично проверить её ...

Удачи !

Сообщение отредактировал JohnZ - 8.9.2017, 13:28
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 24.11.2024, 7:40