Форум программистов, компьютерный форум CyberForum.ru

Видимость экземпляра класса внутри класса - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Поле mutable в структуре http://www.cyberforum.ru/cpp-beginners/thread1490394.html
Добрый день. Есть структура struct NameStructure { protected: mutable TDateTime Time; ....... } Эту структуру я объявил в другом классе и пытаюсь заполнить переменную Time. А мне выпадает ошибка: E2247 NameStructure::Time' is not accessible. Подскажите пожалуйста, как ей присвоить значение?
C++ Охана прибирается в комнате Охана Мацумаэ пытается убраться в комнате, имеющей вид сетки размера n на n ячеек. Каждая ячейка изначально либо чистая, либо грязная. Охана может мести метлой по столбцам сетки. Её метла очень необычная: если она проводит ею по чистому квадрату, он становится грязным, а если она проводит по грязному квадрату, он становится чистым. Девушка хочет провести метлой по некоторым столбцам комнаты так,... http://www.cyberforum.ru/cpp-beginners/thread1490388.html
C++ Защитить алгоритм от зависания
Добрый день, вот я сделал некий алгоритм типа поиска половинным делением. Иногда зависает, наверное, по причине несходимости. В алгоритме присутствует цикл while( true ). Есть мысль сделать какую-то защиту от зависания, ну например, если время выполнения цикла больше 10 сек, но меня терзают смутные сомнения - правильная ли такая стратегия?
C++ В массиве найти все повторяющиеся числа
В массиве нужно найти все числа, которые повторяются и вывести по одному разу и вывести в другой масив. Вся суть задачи в том, что описывать масивы можно лишь указателями. Помогите плис, без них сделаю легко, а вот тут запутался. Язык - С++.
C++ Не могу передать двумерный массив в функцию http://www.cyberforum.ru/cpp-beginners/thread1490368.html
Мне нужно взять имеющийся двумерный массив передать его в функцию, преобразовать и вернуть обратно. Вот код: #include <iostream> #include <stdlib.h> /* run this program using the console pauser or add your own getch, system("pause") or input loop */ //Функция преобразования
C++ Найти самое длинное слово в тексте и количество его повторений Использовать только функции cstdio В чём ошибка? Выводит не самое длинное слово, а определенное кол-во символов с начала текста #include "stdafx.h" #include <iostream> #include <fstream> #include <cstdio> #include <stdio.h> using namespace std; подробнее

Показать сообщение отдельно
Marcosko
0 / 0 / 0
Регистрация: 30.06.2015
Сообщений: 4
30.06.2015, 13:49     Видимость экземпляра класса внутри класса
Здравствуйте! Пытаюсь вывести openCV видео в QT виджете. На данный момент в слоте обновления картинки инициализирую класс cv::VideoCapture cap(0); это совсем не лучшее решение и скорее всего из за него количество кадров в секунду очень низкое.
Как инициализировать этот класс единожды, что бы он был виден в классе отвечающем за конвертацию и отображения картинки?
mainwindow.cpp
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
28
29
30
31
32
33
34
35
36
#include "mainwindow.h"
#include <QImage>
#include <QLabel>
#include "opencv2/opencv.hpp"
#include "opencv2/imgproc/imgproc.hpp"
#include "opencv2/imgproc/types_c.h"
#include <QPushButton>
#include <QVBoxLayout>
 
MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
 
  cv::VideoCapture cap(0);
  timer = new QTimer(this);
  connect(timer, SIGNAL(timeout()), this, SLOT(UpDateImage(cap)));
  timer->start(20);
}
 
MainWindow::~MainWindow()
{
}
 
void MainWindow::UpDateImage()
{
    cv::VideoCapture cap(0);
    myLabel = new QLabel;
    cv::Mat temp;
    cv::Mat frame;
    setCentralWidget(myLabel);
    cap >> frame;
    cvtColor(frame, temp,CV_BGR2RGB);
    QImage image((const uchar *) temp.data, temp.cols, temp.rows, temp.step, QImage::Format_RGB888);
    image.bits();
    myLabel->setPixmap(QPixmap::fromImage( image ));
}
mainwindow.h
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
28
29
30
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
 
#include <QMainWindow>
#include <QLabel>
#include "opencv2/opencv.hpp"
#include "opencv2/imgproc/imgproc.hpp"
#include "opencv2/imgproc/types_c.h"
#include <QPushButton>
#include <QTimer>
 
class MainWindow : public QMainWindow
{
    Q_OBJECT
 
public:
    MainWindow(QWidget *parent = 0);
    ~MainWindow();
private slots:
    void UpDateImage();
 
private:
 
    QLabel *myLabel;
    QTimer *timer;
 
 
};
 
#endif // MAINWINDOW_H
Если делаю так:
C++ (Qt)
1
2
3
4
5
6
7
private:
 
    QLabel *myLabel;
    QTimer *timer;
    cv::VideoCapture *cap;
 
};
то не дает передать классу id камеры и возникает проблема в строке
cap >> frame;
если же пытаюсь сделать вот так:
C++ (Qt)
1
2
3
4
class MainWindow : public QMainWindow
{
    Q_OBJECT
cv::VideoCapture *cap;}
то так же не могу передать аргумент классу
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 15:02. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru