Exemplo n.º 1
0
void RSImageBlockWidget::addButtonAction(const QString &text, const QObject *receiver, const char *member, bool standardAction)
{
    QMenu *menu = ui->loadImagesButton->menu();
    if (!menu) {
        /* Set popup mode */
        ui->loadImagesButton->setPopupMode(QToolButton::MenuButtonPopup);
        ui->loadImagesButton->setIcon(ui->loadImagesButton->icon()); // Sometimes Qt doesn't recalculate sizeHint

        /* Create popup menu */
        menu = new QMenu;
        ui->loadImagesButton->setMenu(menu);

        /* Add 'click' action as action */
        QAction *action = menu->addAction(ui->loadImagesButton->text(), this, SIGNAL(showImages()));
        menu->setDefaultAction(action);
    }

    /* Add new action */
    QAction *action = menu->addAction(text, receiver, member);
    ui->loadImagesButton->addAction(action);

    if (standardAction) {
        /* Connect standard action */
        connect(action, SIGNAL(triggered()), this, SIGNAL(showImages()));
    }
}
Exemplo n.º 2
0
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow),
    first(true)
{
    ui->setupUi(this);
    directories << "/home/schvarcz/Desktop/balance_test/original/"
                << "/home/schvarcz/Desktop/balance_test/colorEnhanced/"
                << "/home/schvarcz/Desktop/balance_test/whiteBalance/";
    savePath = "/home/schvarcz/Desktop/balance_test/selected/";
    editPath = "/home/schvarcz/Desktop/balance_test/editar/";
    diretory.mkdir(savePath);
    diretory.mkdir(editPath);

    diretory.setPath(savePath);
    listImgsProcessed = diretory.entryList(QStringList("*.jpg"));

    diretory.setPath(directories.at(0));
    listImgs = diretory.entryList(QStringList("*.jpg"));

    aniImgTrans = new QPropertyAnimation(ui->imgWidget,"geometry");
    aniImgTrans->setDuration(300);
    aniImgFade = new QPropertyAnimation(ui->imgAux,"geometry");
    aniImgFade->setDuration(300);
    currentIndex = listImgsProcessed.size();
    currentDirectory = 0;
    showImages(0);
}
Exemplo n.º 3
0
void MainWindow::backwardSelected()
{
    if (currentDirectory > 0)
    {
        currentDirectory--;
        showImages(2);
    }
}
Exemplo n.º 4
0
void MainWindow::fordwardSelected()
{
    if (currentDirectory < directories.size()-1)
    {
        currentDirectory++;
        showImages(1);
    }
}
Exemplo n.º 5
0
void
PlaylistModel::removeSelectedItem()
{
    QModelIndexList list = slct->selectedRows();
    if (list.empty()) return;

    int c = 0;
    for (auto iter = list.cbegin();
            iter != list.cend(); ++iter)
    {
        int row = (*iter).row();
        if (row < img_index) c++;
        delete files[row];
        files[row] = nullptr;
    }

    bool contain = (files[currentIndex(0)] == nullptr ||
        (countShowImages() > 1 && files[currentIndex(1)] == nullptr));

    for (int i = 0; i < files.count(); )
    {
        if (files[i] == nullptr)
        {
            beginRemoveRows(QModelIndex(), i, i);
            files.remove(i);
            endRemoveRows();
        }
        else
        {
            i++;
        }
    }

    if (empty())
    {
        dataChangeNotice(-1, 0);
        showImages();
    }
    else
    {
        dataChangeNotice(img_index - c, countShowImages());
        if (contain) showImages();
    }
    emit changePlaylistStatus();
}
Exemplo n.º 6
0
void RSTextBrowser::setImageBlockWidget(RSImageBlockWidget *widget)
{
    if (mImageBlockWidget) {
        // disconnect
        disconnect(mImageBlockWidget, SIGNAL(destroyed()), this, SLOT(destroyImageBlockWidget()));
        disconnect(mImageBlockWidget, SIGNAL(showImages()), this, SLOT(showImages()));
    }

    mImageBlockWidget = widget;

    if (mImageBlockWidget) {
        // connect
        connect(mImageBlockWidget, SIGNAL(destroyed()), this, SLOT(destroyImageBlockWidget()));
        connect(mImageBlockWidget, SIGNAL(showImages()), this, SLOT(showImages()));
    }

    resetImagesStatus(false);
}
Exemplo n.º 7
0
void
PlaylistModel::showSelectedItem()
{
    QModelIndexList list = slct->selectedRows();
    if (list.empty()) return;

    dataChangeNotice(list[0].row(), img_num);
    showImages();
    emit changePlaylistStatus();
}
Exemplo n.º 8
0
void MainWindow::back()
{
    if (currentIndex > 0)
    {
        currentIndex--;
        QFile::remove(savePath+listImgs.at(currentIndex));
        QFile::remove(editPath+listImgs.at(currentIndex));
        showImages(4);
    }
}
Exemplo n.º 9
0
void
PlaylistModel::openImages(const QStringList &path)
{
    bool req_refresh = (count() < 2);
    int c = openFilesAndDirs(path, getOpenDirLevel());
    if (req_refresh && !empty())
    {
        dataChangeNotice(0, 0);
        showImages();
    }
    if (c > 0) emit changePlaylistStatus();
}
bool MgrStereoHand::init(){
	initWindows();

	drawingModule = new DrawingModule;

	fs = new FrameStorage;
	fs->initFrames();

	calibModule = new CalibrationModule;

	process = new ProcessingThread;
	process->init(fs, calibModule, calibDialog, statisticsDialog);

	calibDialog->init(calibModule);

	realProcessingThead = new QThread();
	process->moveToThread(realProcessingThead);

	connect(realProcessingThead, SIGNAL(started()), process, SLOT(process()));
	connect(process, SIGNAL(finished()), realProcessingThead, SLOT(quit()));
	connect(process, SIGNAL(finished()), process, SLOT(deleteLater()));
	connect(realProcessingThead, SIGNAL(finished()), realProcessingThead, SLOT(deleteLater()));
	
	connect(realProcessingThead, SIGNAL(finished()), this, SLOT(realExit()));
	
	connect(process, SIGNAL(showImages()), this, SLOT(showImages()));
	connect(process, SIGNAL(messageError(QString, QString)), this, SLOT(errorMessage(QString, QString)));
	connect(process, SIGNAL(startedProcess()), this, SLOT(startedProcess()));
	connect(process, SIGNAL(finishedProcess()), this, SLOT(finishedProcess()));
	connect(process, SIGNAL(calibrationNotSet()), this, SLOT(calibrationNotSet()));
	connect(process, SIGNAL(showOverlay(QString,int)), this, SLOT(showOverlay(QString,int)));
	connect(process, SIGNAL(getFilmFileName()), this, SLOT(getFilmFileName()));
	//connect(this, SIGNAL(showOverlay(QString,int)), this, SLOT(showOverlay(QString,int)));
	
	realProcessingThead->start();

	return true;
}
void DetectorMainWindow::imagesBrowse(){
    QStringList selected;
    QFileDialog dialog(this);
    dialog.setFileMode(QFileDialog::ExistingFiles);
    dialog.setDirectory(QDir("/home/majd/Downloads/inr/INRIAPerson/"));
    if (dialog.exec()){

        selected=dialog.selectedFiles();
//        ui->imagesViewWidget=new DetectMultiScaleBatchDialog (this,selected,&detector);
//        ui->imagesViewWidget->repaint();

        showImages(selected);

    }
}
Exemplo n.º 12
0
void
PlaylistModel::clearPlaylist()
{
    if (empty()) return;

    beginRemoveRows(QModelIndex(), 0, rowCount()-1);
    {
        qDeleteAll(files);
        files.clear();
    }
    endRemoveRows();

    img_index = -1;
    img_num = 0;
    showImages();
    emit changePlaylistStatus();
}
Exemplo n.º 13
0
void
PlaylistModel::prevImage()
{
    if (empty()) return;

    int old_index = img_index;

    dataChangeNotice(
            nextIndex(img_index, -countShowImages()),
            countShowImages());

    if (old_index != img_index)
    {
        showImages();
        emit changePlaylistStatus();
    }
}
Exemplo n.º 14
0
RSImageBlockWidget::RSImageBlockWidget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::RSImageBlockWidget),
    mAutoHide(false), mAutoHideHeight(4), mAutoHideTimeToStart(3000), mAutoHideDuration(3000)
{
    ui->setupUi(this);
    mDefaultRect = this->geometry();

    ui->infoFrame->installEventFilter(this);

    mTimer = new RsProtectedTimer(this);
    mTimer->setSingleShot(true);
    connect(mTimer, SIGNAL(timeout()), this, SLOT(startAutoHide()));

    mAnimation = new QPropertyAnimation(this, "geometry");

    connect(ui->loadImagesButton, SIGNAL(clicked()), this, SIGNAL(showImages()));
}
Exemplo n.º 15
0
void compareImages(std::string reference_filename, std::string test_filename, bool useEpsCheck,
				   double perPixelError, double globalError)
{
  cv::Mat reference = cv::imread(reference_filename, -1);
  cv::Mat test = cv::imread(test_filename, -1);

  cv::Mat diff = abs(reference - test);

  showImages(reference, test);

  cv::Mat diffSingleChannel = diff.reshape(1, 0); //convert to 1 channel, same # rows

  double minVal, maxVal;

  cv::minMaxLoc(diffSingleChannel, &minVal, &maxVal, NULL, NULL); //NULL because we don't care about location

  //now perform transform so that we bump values to the full range

  diffSingleChannel = (diffSingleChannel - minVal) * (255. / (maxVal - minVal));

  diff = diffSingleChannel.reshape(reference.channels(), 0);

  cv::imwrite("HW4_differenceImage.png", diff);
  //OK, now we can start comparing values...
  unsigned char *referencePtr = reference.ptr<unsigned char>(0);
  unsigned char *testPtr = test.ptr<unsigned char>(0);

  if (useEpsCheck) {
    checkResultsEps(referencePtr, testPtr, reference.rows * reference.cols * reference.channels(), perPixelError, globalError);
  }
  else
  {
    checkResultsExact(referencePtr, testPtr, reference.rows * reference.cols * reference.channels());
  }

  std::cout << "PASS" << std::endl;
  return;
}
Exemplo n.º 16
0
void GameUI::nodeChanged(MythGenericTree* node)
{
    if (!node)
        return;

    if (!isLeaf(node))
    {
        if (node->childCount() == 0 || node == m_favouriteNode)
        {
            node->deleteAllChildren();
            fillNode(node);
        }
        clearRomInfo();
    }
    else
    {
        RomInfo *romInfo = qVariantValue<RomInfo *>(node->GetData());
        if (!romInfo)
            return;
        if (romInfo->Romname().isEmpty())
            romInfo->fillData();
        updateRomInfo(romInfo);
        if (!romInfo->Screenshot().isEmpty() || !romInfo->Fanart().isEmpty() ||
            !romInfo->Boxart().isEmpty())
            showImages();
        else
        {
            if (m_gameImage)
                m_gameImage->Reset();
            if (m_fanartImage)
                m_fanartImage->Reset();
            if (m_boxImage)
                m_boxImage->Reset();
        }
    }
}
Exemplo n.º 17
0
void MainWindow::compareFiles()
{
    if(list_hist.size() != 0)
    {
        QDir dir;
        QStringList filtros ;
        filtros << "*.jpg" << ".*png" << "*.bmp";

        QString fileName = QFileDialog::getOpenFileName(this,
                                                        tr("Load Image to Compare"),
                                                        QDir::currentPath(),
                                                        tr("Images (*.jpg *.png *.bmp)"));

        QDir file = QFileInfo(fileName).absoluteDir();

        if(fileName.toStdString() != "")
        {
            QString image = fileName.split( "/" ).back();
            QString image_path = file.absolutePath() + "/" + image;
            QString xml = "hist_"+ QString("%1").arg(this->imageID +1, 6, 10, QChar('0')) + ".xml";
            QString xml_path = dir.absolutePath() + "/" + this->HistFolder+"/"+ xml;

            // Extract HSV and compare.
            Histogram *h = new Histogram(image.toStdString(), image_path.toStdString(), xml_path.toStdString());

            // COMPARE HISTOGRAM

            // PARALLEL CODE
            int i;
            QList<Histogram*> list_hist;
            list_hist = this->list_hist;

            #pragma omp parallel firstprivate(list_hist) shared(h)
            {
                #pragma omp for private(i)
                for(i = 0; i < list_hist.length(); i++)
                    h->compareHistogram(h, list_hist.at(i), 1);

                #pragma omp barrier
            }

            // END PARALLEL CODE

            // SORT TOP 15
            QList<Histogram*> ranking;

            for(i = 0; i < list_hist.length(); i++)
            {
                if(ranking.length() < 15)
                {
                    ranking.push_back(list_hist.at(i));
                }
                else
                {
                    if(list_hist.at(i)->getCompare() > ranking.at(0)->getCompare())
                    {
                        ranking.pop_front();
                        ranking.push_back(list_hist.at(i));
                    }
                }

                qSort(ranking.begin(), ranking.end(), compLess<Histogram>());

            }

            this->edit->append("\nTOP 15:\n");

            QList<QString> imagesToShow;

            for(i = ranking.length() - 1; i >= 0 ; i--)
            {
                QString text = "Image: " + QString::fromStdString(ranking.at(i)->getName()) + " is " + QString::number(ranking.at(i)->getCompare()) + "% similar";
                imagesToShow.append("images/" + QString::fromStdString(ranking.at(i)->getName()));

                this->edit->append(text);
            }

            ShowImages showImages(imagesToShow);
            showImages.setWindowTitle("View Images");
            showImages.exec();
        }

    }
    else
    {
        QMessageBox msgBox;
        QString stringMsg = "No existe BBDD de imágenes para comparar.";

        msgBox.setIcon(QMessageBox::Warning);
        msgBox.setText(stringMsg);
        msgBox.exec();
    }
}
Exemplo n.º 18
0
void MainWindow::next()
{
    currentIndex++;
    showImages(3);
}
Exemplo n.º 19
0
void ImageExample::touchDown( ofTouchEventArgs & touch )
{
    TUIO::TuioCursor* cursor1 = nullptr;
    TUIO::TuioCursor* cursor2 = nullptr;
    TUIO::TuioCursor* cursor3 = nullptr;
    TUIO::TuioCursor* cursor4 = nullptr;


    unsigned long long currentTime = ofGetElapsedTimeMillis();
    if(currentTime - m_elapsedTime <= 500)
    {
        m_Mode = M_DOUBLETAP;
    }
    else
    {
        m_Mode = M_TAP;
    }

    int cursorNum = MyClient.client->getTuioCursors().size();
    switch (cursorNum)
    {
    case 1:
        //앨범이고 더블클릭일 경우 사진들 숨기기
        for ( auto *iter : MyClient.client->getTuioCursors() )
        {
            switch ( iter->getCursorID() )
            {
            case 0:
                cursor1 = iter;
                break;
            default:
                break;
            }
        }
        if(cursor1 == nullptr)
            return;
        m_currentElement = getCurrentImage(cursor1);
        if(m_currentElement == nullptr)
        {
            break;
        }
        if(m_currentElement->m_isCover && m_Mode == M_DOUBLETAP)
        {
            hideImages(m_currentElement);
        }
        //앨범이고 탭일 경우 사진들 보이기
        else if(m_currentElement->m_isCover && m_Mode == M_TAP)
        {
            showImages(m_currentElement);
        }
        //사진일 경우 단순 선택
        else if(m_currentElement->m_isCover == false && m_Mode == M_TAP)
        {
            m_currentElement->m_Mode = M_TAP;
        }
        break;
    case 2:
        for ( auto *iter : MyClient.client->getTuioCursors() )
        {
            switch ( iter->getCursorID() )
            {
            case 0:
                cursor1 = iter;
                break;
            case 1:
                cursor2 = iter;
                break;
                break;
            default:
                break;
            }
        }
        if (cursor1 == nullptr || cursor2 == nullptr)
        {
            return;
        }
        if(getCurrentImage(cursor1) ==nullptr && getCurrentImage(cursor2)==nullptr)
            break;
        if(getCurrentImage(cursor1)==getCurrentImage(cursor2))
            m_currentElement = getCurrentImage(cursor1);
        else if(getCurrentImage(cursor1)!= nullptr && getCurrentImage(cursor2)==nullptr)
            m_currentElement = getCurrentImage(cursor1);
        else if(getCurrentImage(cursor1)== nullptr && getCurrentImage(cursor2)!=nullptr)
            m_currentElement = getCurrentImage(cursor2);
        else
            break;

        if(m_currentElement->m_isCover == true)
            return;
        m_currentElement->m_Distance =sqrt(pow(cursor1->getX()-cursor2->getX(),2)+pow(cursor1->getY()-cursor2->getY(),2));
        m_backOriginX = (cursor1->getX()-cursor2->getX())/2;
        m_backOriginY =  (cursor1->getY()-cursor2->getY())/2;
        m_currentAngle = 180.0 * atan( ( cursor1->getY() - cursor2->getY() ) / ( cursor1->getX() - cursor2->getX() )) * PI;
        m_Mode = M_SCALE;
        break;
    case 3:
        for ( auto *iter : MyClient.client->getTuioCursors() )
        {
            switch ( iter->getCursorID() )
            {
            case 0:
                cursor1 = iter;
                break;
            case 1:
                cursor2 = iter;
                break;
            case 2:
                cursor3 = iter;
                break;
            default:
                break;
            }
        }
        if (cursor1 == nullptr || cursor2 == nullptr|| cursor3 == nullptr)
        {
            return;
        }
        m_Mode = M_ZOOM;
        m_currentElement = getZoomingImage(cursor1,cursor2,cursor3);
        break;
    case 4:
        for ( auto *iter : MyClient.client->getTuioCursors() )
        {
            switch ( iter->getCursorID() )
            {
            case 0:
                cursor1 = iter;
                break;
            case 1:
                cursor2 = iter;
                break;
            case 2:
                cursor3 = iter;
                break;
            case 3:
                cursor4 = iter;
                break;
            default:
                break;
            }
        }
        if (cursor1 == nullptr || cursor2 == nullptr|| cursor3 == nullptr|| cursor4 == nullptr)
        {
            return;
        }
        m_Mode = M_NAVIGATION;
        m_backOriginX = WINDOW_WIDTH*(cursor1->getX()+cursor2->getX() + cursor3->getX()+cursor4->getX())/4;
        m_backOriginY = WINDOW_HEIGHT*(cursor1->getY()+cursor2->getY() + cursor3->getY()+cursor4->getY())/4;
        break;
    default:
        break;
    }





    m_elapsedTime = currentTime;
}
void DetectorMainWindow::writtenPaths(){
    QStringList selected=ui->lineEdit->text().split(';');
    showImages(selected);

}