crossplatform.ru

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

ONIX
  опции профиля:
сообщение 15.5.2014, 20:09
Сообщение #1


Новичок


Группа: Новичок
Сообщений: 4
Регистрация: 15.5.2014
Пользователь №: 4131

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




Репутация:   0  


Здравствуйте! Хочу на qt сделать программку для подключения к ip-камере. Простенькую, чтобы только к камере по ip подключалась и всё.
Не получается реализовать её в оконном режиме, получается только путём создания консольного приложения через Qt-creator.
Помогите пожалуйста переделать её из консольной в виджетную. Не судите строго, только начал работать с QT.

Вот код программы на C++
#include <iostream>
#include "opencv2/opencv.hpp"
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>


using namespace std;
using namespace cv;

int main()
{
    VideoCapture cap("http://192.168.0.101:8080/video?x.mjpeg"); //change this URL according to your camera
    if (!cap.isOpened())
    {
        cout << "could not capture";
        return 0;
    }

    Mat frame;
    namedWindow("IPcamera", 1);
    char key = 'a';

    while(key != 27)
    {
        cap.grab();
        cap.retrieve(frame);
        imshow("IPcamera", frame);
        key = waitKey(10);
    }

    destroyAllWindows();
    return 0;
}
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
igor_bogomolov
  опции профиля:
сообщение 17.5.2014, 0:20
Сообщение #2


Профессионал
*****

Группа: Сомодератор
Сообщений: 1215
Регистрация: 22.3.2009
Из: Саратов
Пользователь №: 630

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




Репутация:   29  


Там же всё просто.
Раскрывающийся текст
#include "dialog.h"
#include "ui_dialog.h"

#include <QtCore/QDebug>
#include <QtCore/QTimer>

Dialog::Dialog(QWidget *parent)
    : QDialog(parent)
    , ui(new Ui::Dialog)
{
    ui->setupUi(this);

    capture.release();
    if (!capture.open(0)) {
        qWarning() << tr("error: capWebCam not accessed successfully");
        return;
    }

    QTimer *timer = new QTimer(this);
    connect(timer, SIGNAL(timeout()), this, SLOT(processFrameAndUpdateGui()));
    timer->start(20);
}

Dialog::~Dialog()
{
    capture.release();
    delete ui;
}

void Dialog::processFrameAndUpdateGui()
{
    if (capture.read(mat)) {
        QImage image((uchar*)mat.data, mat.cols, mat.rows, mat.step, QImage::Format_RGB888);
        ui->label->setPixmap(QPixmap::fromImage(image));
    }
}
Более подробно смотри во вложении.
Прикрепленные файлы
Прикрепленный файл  QtTracker3.tar.gz ( 3.59 килобайт ) Кол-во скачиваний: 904
 
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ONIX
  опции профиля:
сообщение 17.5.2014, 1:11
Сообщение #3


Новичок


Группа: Новичок
Сообщений: 4
Регистрация: 15.5.2014
Пользователь №: 4131

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




Репутация:   0  


Цитата(igor_bogomolov @ 17.5.2014, 0:20) *
Там же всё просто.
Раскрывающийся текст
#include "dialog.h"
#include "ui_dialog.h"

#include <QtCore/QDebug>
#include <QtCore/QTimer>

Dialog::Dialog(QWidget *parent)
    : QDialog(parent)
    , ui(new Ui::Dialog)
{
    ui->setupUi(this);

    capture.release();
    if (!capture.open(0)) {
        qWarning() << tr("error: capWebCam not accessed successfully");
        return;
    }

    QTimer *timer = new QTimer(this);
    connect(timer, SIGNAL(timeout()), this, SLOT(processFrameAndUpdateGui()));
    timer->start(20);
}

Dialog::~Dialog()
{
    capture.release();
    delete ui;
}

void Dialog::processFrameAndUpdateGui()
{
    if (capture.read(mat)) {
        QImage image((uchar*)mat.data, mat.cols, mat.rows, mat.step, QImage::Format_RGB888);
        ui->label->setPixmap(QPixmap::fromImage(image));
    }
}
Более подробно смотри во вложении.

Спасибо тебе за помощь! Кстати твой проект сразу запустился, пожалуй буду переделывать именно эту прогу.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


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


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


RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 7.4.2025, 4:08