LINUX.ORG.RU

Захват с двух камер сильно грузит ЦП.

 , qcamera, qt mobility


0

1

xubuntu 12.04, qt 4.8.1, qt mobility взял с http://qt.gitorious.org/qt-mobility
Собрал пример camera в qt mobility, загрузка при захвате с камеры и выводе на экран ~ 6%. При выборе другой камеры ~70%. Тоже самое если захватывать изображение с двух камер одновременно в одном приложении ~70%. Если запустить как два отдельных приложения захват с камер ~ 12% (по 6% на каждое приложение).
Захват и вывод изображения примерно такой:

void MainWindow::setCamera(const QByteArray &cameraDevice)
{
    delete camera_video0;    
    camera_video0 = new QCamera(cameraDevice);    
    connect(camera_video0, SIGNAL(error(QCamera::Error)), this, SLOT(displayCameraError()));

    camera_video0->setViewfinder(ui->widget);
    camera_video0->start();
}
в cameraDevice передается '/dev/video0'
Что я делаю не так?

Попробуй простенькое приложение на OpenCV на основе этого:

#include <opencv/cv.h>
#include <opencv/highgui.h>
#include <unistd.h> // usleep()

int main (int argc, char **argv) {
if (argc < 2) return -1;
char *filename_i = argv[1];
CvCapture *capture = cvCaptureFromAVI(filename_i);
IplImage *img;
while(1) {
cvGrabFrame(capture);
img = cvRetrieveFrame(capture);
int key = cvWaitKey(5);
cvShowImage(«OpenCV video test»,img);
usleep(20*1000);
}
}

$ g++ -o _cvvideo cvvideo.cpp -lcv -lhighgui

pacify ★★★★★
()
Ответ на: комментарий от vladimirsmirnov9

казалось бы, причём здесь Qt?

наверное, стоит почитать про методики отладки программных систем?

pacify ★★★★★
()
Ответ на: комментарий от pacify

Попробовал, avi файл не воспроизводит, скорее всего надо ffmpeg как то подсунуть.
Собрал так:
$ g++ -o _cvvideo cvvideo.cpp -lopencv_core -lopencv_highgui
Но зачем мне это? Мне бы хотелось только с помощью qt все сделать. Если и включать другую библиотеку для отрисовки, то лучше уж SDL.

Andrey325
() автор топика

если ничего не поможет, опрашивай напрямую камеру ioctl-ами через библиотеку v4l, а потом уже преобразуй полученные пиксели в нужные тебе данные. Скорость гарантирована

Burns
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.