From 970a0e90a6dbd0f1fc708a6cc303e1aa15213e8a Mon Sep 17 00:00:00 2001 From: Franco Zahem Zavala E Date: Fri, 7 Oct 2011 19:29:07 -0500 Subject: [PATCH] funcionando la extraccion de fondo :) --- camara.cpp | 14 +++++++++----- camara.h | 4 +++- mainwindow.cpp | 42 +++++++++++++++++++++--------------------- 3 files changed, 33 insertions(+), 27 deletions(-) diff --git a/camara.cpp b/camara.cpp index 393ed60..0736a86 100644 --- a/camara.cpp +++ b/camara.cpp @@ -14,6 +14,7 @@ camara::camara(QWidget *parent) : QVBoxLayout* camlay = new QVBoxLayout; camlabe = new QLabel; errorid = 0; + fondid = 0; camlabe->setFrameStyle(QFrame::Panel | QFrame::Raised); camlabe->setLineWidth(2); @@ -69,7 +70,6 @@ void camara::guardImagen(const QString &nombre) { if (errorid == 0) { - String ruta("/tmp/"); ruta += nombre.toStdString(); cap >> fram; @@ -110,7 +110,6 @@ void camara::newQframe() //obtiene una captura de pantalla de la camara y la gua //imag = imag.convertToFormat(QImage::Format_Mono); //imag = imag.convertToFormat(QImage::Format_MonoLSB); - camlabe->setPixmap(QPixmap::fromImage(imag.mirrored(true,false))); mipix = QPixmap::fromImage(imag.mirrored(true,false)); } @@ -145,7 +144,6 @@ void camara::newQBWframe() camlabe->setPixmap(QPixmap::fromImage(imag.mirrored(true,false))); mipix = QPixmap::fromImage(imag.mirrored(true,false)); } - } void camara::newQINframe() @@ -165,7 +163,7 @@ void camara::newQINframe() } -void camara::newQEXframe(const int &idd) +void camara::newQEXTframe() { if (errorid == 0) { @@ -174,7 +172,8 @@ void camara::newQEXframe(const int &idd) cvtColor(fram, rgb, CV_BGR2RGB); QImage imag((const unsigned char*)(rgb.data), rgb.cols, rgb.rows, QImage::Format_RGB888); - QImage fond(":fondos/fondo"+ QString::number(idd)); + QImage fond(":fondos/fondo"+ QString::number(fondid)); + //QImage fond(":fondos/fondo0"); QRgb col; int newpixR,newpixG,newpixB; int width = imag.width(); @@ -210,4 +209,9 @@ int camara::geterror() return errorid; } +void camara::setFondidd(const int &idd) +{ + fondid=idd; +} + diff --git a/camara.h b/camara.h index 80037da..44455ee 100644 --- a/camara.h +++ b/camara.h @@ -24,6 +24,7 @@ private: VideoCapture cap; int errorid; Mat fram; + int fondid; signals: void error(const int&); @@ -35,10 +36,11 @@ public slots: void newQframe(); void newQBWframe(); void newQINframe(); - void newQEXframe(const int &); + void newQEXTframe(); void relacam(); void opencam(); int geterror(); + void setFondidd(const int&); }; #endif // CAMARA_H diff --git a/mainwindow.cpp b/mainwindow.cpp index a183088..76ab529 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -69,7 +69,7 @@ MainWindow::MainWindow(QWidget *parent) : misfondos.last()->setGeometry(5,(0 + i*120),160,120); misfondos.last()->conmarco(true); misfondos.last()->setidd(i); -// connect(misfondos.last(),SIGNAL(seleccionado(int)),this,SLOT(seSelecciono(int))); + connect(misfondos.last(),SIGNAL(seleccionado(int)),this,SLOT(seSelecciono(int))); } //agrega el objeto camaru de tipo camara @@ -83,7 +83,6 @@ MainWindow::MainWindow(QWidget *parent) : ui->verticalLayout_2->addWidget(ui->buttonBox); ui->verticalLayout_2->addWidget(ui->botonfoto); - camaru->setpix(QPixmap(":imas/admira")); //esto es temporal solo para que muestre alguna imagen en cuanto habra el programa camaru->adjustSize(); @@ -98,7 +97,6 @@ MainWindow::MainWindow(QWidget *parent) : connect(foto2, SIGNAL(seleccionado(int)), this, SLOT(seSelecciono(int))); connect(foto3, SIGNAL(seleccionado(int)), this, SLOT(seSelecciono(int))); connect(foto4, SIGNAL(seleccionado(int)), this, SLOT(seSelecciono(int))); - } MainWindow::~MainWindow() @@ -241,8 +239,6 @@ void MainWindow::tomafotoReal() void MainWindow::seSelecciono(const int &id) { - camaru->relacam(); - ui->buttonBox->show(); switch (id) { @@ -250,10 +246,15 @@ void MainWindow::seSelecciono(const int &id) case -2 : {camaru->setpix(foto2->getpix()); fotonum=2;} break; case -3 : {camaru->setpix(foto3->getpix()); fotonum=3;} break; case -4 : {camaru->setpix(foto4->getpix()); fotonum=4;} break; - default: fondoid=id; + default: {fondoid=id; camaru->setFondidd(fondoid); } } - this->seleccion(fotonum); + if (id<0) + { + this->seleccion(fotonum); + camaru->relacam(); + ui->buttonBox->show(); + } } @@ -320,7 +321,7 @@ void MainWindow::on_blanegro_clicked(bool checked) //desconeccines disconnect(timeer, SIGNAL(timeout()), camaru, SLOT(newQframe())); disconnect(timeer, SIGNAL(timeout()), camaru, SLOT(newQINframe())); -// disconnect(timeer, SIGNAL(timeout()), camaru, SLOT(newQEXframe(fondoid))); + disconnect(timeer, SIGNAL(timeout()), camaru, SLOT(newQEXTframe())); //coneccion connect(timeer, SIGNAL(timeout()), camaru, SLOT(newQBWframe())); @@ -335,8 +336,7 @@ void MainWindow::on_normal_clicked(bool checked) //desconecciones disconnect(timeer, SIGNAL(timeout()), camaru, SLOT(newQBWframe())); disconnect(timeer, SIGNAL(timeout()), camaru, SLOT(newQINframe())); -// disconnect(timeer, SIGNAL(timeout()), camaru, SLOT(newQEXframe(fondoid))); - + disconnect(timeer, SIGNAL(timeout()), camaru, SLOT(newQEXTframe())); //coneccion connect(timeer, SIGNAL(timeout()), camaru, SLOT(newQframe())); @@ -351,7 +351,7 @@ void MainWindow::on_Invertido_clicked(bool checked) //desconecciones disconnect(timeer, SIGNAL(timeout()), camaru, SLOT(newQBWframe())); disconnect(timeer, SIGNAL(timeout()), camaru, SLOT(newQframe())); -// disconnect(timeer, SIGNAL(timeout()), camaru, SLOT(newQEXframe(fondoid))); + disconnect(timeer, SIGNAL(timeout()), camaru, SLOT(newQEXTframe())); //coneccion connect(timeer, SIGNAL(timeout()), camaru, SLOT(newQINframe())); @@ -360,14 +360,14 @@ void MainWindow::on_Invertido_clicked(bool checked) void MainWindow::on_extrafond_clicked(bool checked) { -// if (checked==true) -// { -// //desconecciones -// disconnect(timeer, SIGNAL(timeout()), camaru, SLOT(newQBWframe())); -// disconnect(timeer, SIGNAL(timeout()), camaru, SLOT(newQframe())); -// disconnect(timeer, SIGNAL(timeout()), camaru, SLOT(newQINframe())); - -// //coneccion -// connect(timeer, SIGNAL(timeout()), camaru, SLOT(newQEXframe(fondoid))); -// } + if (checked==true) + { + //desconecciones + disconnect(timeer, SIGNAL(timeout()), camaru, SLOT(newQBWframe())); + disconnect(timeer, SIGNAL(timeout()), camaru, SLOT(newQframe())); + disconnect(timeer, SIGNAL(timeout()), camaru, SLOT(newQEXTframe())); + + //coneccion + connect(timeer, SIGNAL(timeout()), camaru, SLOT(newQEXTframe())); + } } -- 2.11.4.GIT