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 37 38 39 40 41 42 43 44 45 46 47 48 49 50
|
// Classe d'affichage des images acquises (thread principal)
class InterfaceGraphique : public QObject
{
public :
InterfaceGraphique()
{
matrice = cv::Mat(1024, 768, CV_8UC1, cv::Scalar::all(0));
}
void initInterface()
{
mainWindow = new QMainWindow();
scene = new QGraphicsScene();
vue = new QGraphicsView(scene);
item = new QGraphicsPixmapItem();
scene->addItem(item);
mainWindow->setCentralWidget(vue);
mainWindow->show();
}
void initAcquisition()
{
acquisition = new Acquisition();
connect(acquisition, &Acquisition::newImage, this, &InterfaceGraphique::rafraichir);
acquisition->initAcquisition();
}
public slots :
void rafraichir()
{
unsigned char* inputImage = (unsigned char*) malloc (1024*768*sizeof(unsigned char));
// Copie de l'image récupérée par la caméra vers inputImage
acquisition->getImage(&inputImage);
image = QImage(inputImage, 1024, 768, Format_Indexed8);
// Affichage de l'image acquise
scene->setPixmap(QPixmap::fromImage(image));
}
signals :
private :
QMainWindow* mainWindow;
QGraphicsScene* scene;
QGraphicsView* vue;
QGraphicsPixmapItem* item;
QImage image;
Acquisition* acquisition;
}; |
Partager