Cambie los labels comunes por Labels tipo milabel que tiene como ventaja
[photoboothMX.git] / camara.cpp
blob1b75890fea910076c53e10ef1e5b5b8307fa090e
1 #include "camara.h"
2 #include <QVBoxLayout>
3 #include <QLabel>
4 #include <opencv/cv.h>
5 #include <opencv/highgui.h>
6 #include <QMessageBox>
8 camara::camara(QWidget *parent) :
9 QWidget(parent)
11 QVBoxLayout* camlay = new QVBoxLayout;
12 camlabe = new QLabel;
13 errorid = 0;
15 camlabe->setFrameStyle(QFrame::Panel | QFrame::Raised);
16 camlabe->setLineWidth(2);
18 camlabe->setMinimumWidth(640);
19 camlabe->setMinimumHeight(480);
21 camlabe->setMaximumWidth(640);
22 camlabe->setMaximumHeight(480);
24 camlabe->setScaledContents(true);
26 camlabe->adjustSize();
28 this->setAttribute(Qt::WA_DeleteOnClose);
29 this->setAttribute(Qt::WA_QuitOnClose);
31 camlay->addWidget(camlabe);
32 this->setLayout(camlay);
34 //accesando a camara
35 cap.open(0);
37 if(!cap.isOpened()) //pregunta si abrio la camara bien..
39 QMessageBox::critical(this,tr("Problema"),tr("El programa no encuentra la camara"),
40 QMessageBox::Yes|QMessageBox::Default);
42 //que muestre una imagen de error pork no habrio la camara
43 this->setpix(QPixmap(":imas/admira"));
44 errorid = 1;
45 emit error(errorid);
51 void camara::setima(const QImage &imag) //asigna una imagen al label principal
53 mipix = QPixmap::fromImage(imag);
54 camlabe->setPixmap(mipix);
57 void camara::setpix(const QPixmap &privpix) //asigna una imagen tipo QPixmap al label principal
59 mipix = privpix;
60 camlabe->setPixmap(privpix);
63 QPixmap camara::getpix() //obtiene la imagen que esta en label Principal en formato QPixmap
65 return mipix;
68 void camara::guardImagen(const QString &nombre)
70 if (errorid == 0)
73 String ruta("/tmp/");
74 ruta += nombre.toStdString();
75 cap >> fram;
76 imwrite(ruta,fram);
81 void camara::newQframe() //obtiene una captura de pantalla de la camara y la guarda en QPixmap mipix
83 if (errorid == 0)
85 Mat rgb;
86 cap >> fram;
87 cvtColor(fram, rgb, CV_BGR2RGB);
88 QImage imag((const unsigned char*)(rgb.data), rgb.cols, rgb.rows, QImage::Format_RGB888);
89 camlabe->setPixmap(QPixmap::fromImage(imag));
90 mipix = QPixmap::fromImage(imag);