Форум программистов, компьютерный форум, киберфорум
C++: OpenCV
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/18: Рейтинг темы: голосов - 18, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 15.10.2017
Сообщений: 8
1

Как занести видео поток (OpenCV) в виджет?

16.10.2017, 14:33. Показов 3675. Ответов 8

Author24 — интернет-сервис помощи студентам
Понадобилось в срочном порядке допилить интерфейс для программы, суть ее в том, что она распознает изображения с веб камеры, но это не так важно.
В опред. момент мы открываем вебку:

C++ (Qt)
1
VideoCapture cap(0);
как я понял из комментариев другого разработчика (моя часть только интерфейс) именно это открывает отдельное окно с видео потоком с вебки. Так вот вопрос, как мне встроить это видео в окно проекта Qt.

Очень много гуглил, но так как с QT работаю впервые, а времени пару дней, (и уже потрачено пару на поиски реализации) решил попросить Вашей помощи. На найденных мною ответах (не совсем совпадало) либо не получалось, либо я мог понять что сделать, в виду языкового барьера и отсутствия соответствующих знаний (только начал работать с ООП в принципе).

Если нужны какие-то исходники- без проблем.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.10.2017, 14:33
Ответы с готовыми решениями:

Поток вывода в виджет
Есть программка с tkinter. Скриншоты прилагаются. При нажатии одной из кнопок стартует "игра"....

Не получается занести содержимое List в поток
Не получается занести содержимое List в поток Stream1. В Memo1 ничего не происходит(( procedure...

Как можно взять поток видео с обычной веб камеры
добрый вечер, У меня такой вопросик. Как можно взять поток видео с обычной веб камеры? Ясен красен...

Как запустить RTMP видео поток на сайте без flash?
Как запустить RTMP видео поток на сайте без flash? Потому как браузеры его блокируют, и для...

8
7793 / 6560 / 2984
Регистрация: 14.04.2014
Сообщений: 28,672
16.10.2017, 17:26 2
VideoCapture просто считывает данные с камеры. А дальше извлекай кадры и выводи.
0
Заблокирован
16.10.2017, 17:31 3
Сейчас тебе пример накидаю, погоди немного
0
0 / 0 / 0
Регистрация: 15.10.2017
Сообщений: 8
16.10.2017, 18:21  [ТС] 4
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
int Camera()
{
    int c;
    VideoCapture cap(0); // opens default webcam
 
    /*/if (!cap.isOpened())
    {
        break;
    }*/
 
    Mat frame;
    vector<vector<Point> > squares;
    for (;;)
    {
        cap >> frame;
        if (frame.empty())
        {
            break;
        }
        findSquares(frame, squares);
        drawSquares(frame, squares);
        imshow("Detection", frame);
        c = waitKey(33);
        if (c == 27)
            return 0;
    }
}
Это весь код этой функции
0
Заблокирован
16.10.2017, 18:50 5
Оййй хотел по быстрому накидать, накидал, но что-то твой OpenCL контуры не распознаёт, ну и хрен с ним Ты уж сам там со своим CV-шником разберись, почему контуры не видно... Сто лет это барахло не использовал, забыл уже всё
Там во вложениях архив из 3-х фалов, это проект целиком. Весит много, т.к. там папка с OpenCV внутри.
Вся обработка видео идёт тут
C++ (Qt)
1
QVideoFrame VideoFilterRunnable::run(QVideoFrame *input, const QVideoSurfaceFormat &surfaceFormat, QVideoFilterRunnable::RunFlags flags)
Вложения
Тип файла: rar OpenCVDemo.part01.rar (9.00 Мб, 31 просмотров)
Тип файла: rar OpenCVDemo.part02.rar (9.00 Мб, 25 просмотров)
Тип файла: rar OpenCVDemo.part03.rar (5.88 Мб, 23 просмотров)
1
0 / 0 / 0
Регистрация: 15.10.2017
Сообщений: 8
16.10.2017, 18:57  [ТС] 6
newbie_1, ого, здорово, посмотрю.
Спасибо большое.

И еще вопрос совсем не связанный.
Есть QList allQFrame
QList<QFrame *> allQFrame = this->findChildren<QFrame *>();
Как мне его отсортировать по названию фреймов? Они называются frame000, frame 001 и т.д.
0
Заблокирован
16.10.2017, 19:15 7
Цитата Сообщение от kemosab Посмотреть сообщение
И еще вопрос совсем не связанный.
Есть QList allQFrame
Хмм... Ну вообще наверное я тебя огорчу, тот проект, что я тебе кинул, на QML, я уж давно не пишу ничего на виджетах, т.к. QML намного функциональней.
А что до QFrame... А там разве где-то название ему можно задать? Какой функцией ты можешь узнать название QFrame? accessibleName?
0
0 / 0 / 0
Регистрация: 15.10.2017
Сообщений: 8
16.10.2017, 19:17  [ТС] 8
newbie_1, название самого frame в режиме дизайнера.
https://pp.userapi.com/c841324... YotMmQ.jpg
как то так
0
Заблокирован
16.10.2017, 19:32 9
Цитата Сообщение от kemosab Посмотреть сообщение
название самого frame в режиме дизайнера.
По названию, то есть алфавитная сортировка, будет выглядеть как-то так:
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <QList>
#include <QString>
#include <QDebug>
#include <algorithm>
 
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
 
    QList<QFrame*> allQFrame = this->findChildren<QFrame*>();
    std::sort(allQFrame.begin(), allQFrame.end(), [] (const QFrame* a , const QFrame* b) { return a->objectName() < b->objectName(); });
 
    //Test
    for(auto& it : allQFrame)
        qDebug() << it->objectName();
В принципе можно отрезать от названия последние буковки, перевести их в цифры и по ним отсортировать...Всё зависит от того, какую цель ты преследуешь.
1
16.10.2017, 19:32
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.10.2017, 19:32
Помогаю со студенческими работами здесь

Вывод видео на виджет
Суть проблемы: имеется некоторая камера подключенная по USB. В системе определяется как...

Виджет превьюшка видео
День добрый! Мне нужно сделать полосу с выскакивающей превьюшкой (а-ля как на ютубе). Прогресс...

Работа с видео потоком opencv c++
Приветствую, необходима помощь, есть программа, фрагменты взяты из официальной документации opencv....

Qt + OpenCv видео в разных потоках
Здравствуйте, пытаюсь написать на qt програмку: в потоке открывается окно с помощью opencv и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru