diff --git a/label_img.cpp b/label_img.cpp index e15ae13..c10dd29 100644 --- a/label_img.cpp +++ b/label_img.cpp @@ -109,11 +109,12 @@ void label_img::setMousePosition(int x, int y) void label_img::openImage(const QString &qstrImg) { - m_inputImg = QImage(qstrImg); - m_inputImg = m_inputImg.convertToFormat(QImage::Format_RGB888); - m_objBoundingBoxes.clear(); - m_bLabelingStarted = false; + + m_inputImg = QImage(qstrImg); + m_inputImg = m_inputImg.convertToFormat(QImage::Format_RGB888); + + m_bLabelingStarted = false; QPoint mousePosInUi = this->mapFromGlobal(QCursor::pos()); bool mouse_is_in_image = QRect(0, 0, this->width(), this->height()).contains(mousePosInUi); diff --git a/mainwindow.cpp b/mainwindow.cpp index c18d573..b777c6a 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -21,10 +21,6 @@ MainWindow::MainWindow(QWidget *parent) : { ui->setupUi(this); - connect(ui->label_image, SIGNAL(Mouse_Moved()), this, SLOT(mouseCurrentPos())); - connect(ui->label_image, SIGNAL(Mouse_Pressed()), this, SLOT(mousePressed())); - connect(ui->label_image, SIGNAL(Mouse_Release()), this, SLOT(mouseReleased())); - connect(new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_S), this), SIGNAL(activated()), this, SLOT(save_label_data())); connect(new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_C), this), SIGNAL(activated()), this, SLOT(clear_label_data())); @@ -67,8 +63,7 @@ void MainWindow::init() ui->pushButton_prev->setEnabled(true); ui->pushButton_save->setEnabled(true); - ui->horizontalSlider_images->setRange(0, m_fileList.size() - 1); - + ui->horizontalSlider_images->setRange(0, m_imgList.size() - 1); ui->horizontalSlider_images->blockSignals(true); ui->horizontalSlider_images->setValue(0); @@ -81,59 +76,59 @@ void MainWindow::init() void MainWindow::set_label_progress(const int fileIndex) { QString strCurFileIndex = QString::number(fileIndex); - QString strEndFileIndex = QString::number(m_fileList.size() - 1); + QString strEndFileIndex = QString::number(m_imgList.size() - 1); ui->label_progress->setText(strCurFileIndex + " / " + strEndFileIndex); } void MainWindow::set_focused_file(const int fileIndex) { - ui->label_file->setText("File: " + m_fileList.at(fileIndex)); + ui->label_file->setText("File: " + m_imgList.at(fileIndex)); } -void MainWindow::goto_img(int fileIndex) +void MainWindow::goto_img(const int fileIndex) { - bool indexIsOutOfRange = (fileIndex < 0 || fileIndex > m_fileList.size() - 1); + bool indexIsOutOfRange = (fileIndex < 0 || fileIndex > m_imgList.size() - 1); if(!indexIsOutOfRange) { - m_fileIndex = fileIndex; + m_imgIndex = fileIndex; - ui->label_image->openImage(m_fileList.at(m_fileIndex)); - ui->label_image->loadLabelData(get_labeling_data(m_fileList.at(m_fileIndex))); + ui->label_image->openImage(m_imgList.at(m_imgIndex)); + ui->label_image->loadLabelData(get_labeling_data(m_imgList.at(m_imgIndex))); ui->label_image->showImage(); - set_label_progress(m_fileIndex); - set_focused_file(m_fileIndex); + set_label_progress(m_imgIndex); + set_focused_file(m_imgIndex); } } void MainWindow::next_img() { save_label_data(); - goto_img(m_fileIndex + 1); + goto_img(m_imgIndex + 1); ui->horizontalSlider_images->blockSignals(true); - ui->horizontalSlider_images->setValue(m_fileIndex); + ui->horizontalSlider_images->setValue(m_imgIndex); ui->horizontalSlider_images->blockSignals(false); } void MainWindow::prev_img() { save_label_data(); - goto_img(m_fileIndex - 1); + goto_img(m_imgIndex - 1); //it blocks crash with slider change ui->horizontalSlider_images->blockSignals(true); - ui->horizontalSlider_images->setValue(m_fileIndex); + ui->horizontalSlider_images->setValue(m_imgIndex); ui->horizontalSlider_images->blockSignals(false); } void MainWindow::save_label_data()const { - if(m_fileList.size() == 0) return; + if(m_imgList.size() == 0) return; - QString qstrOutputLabelData = get_labeling_data(m_fileList.at(m_fileIndex)); + QString qstrOutputLabelData = get_labeling_data(m_imgList.at(m_imgIndex)); ofstream fileOutputLabelData(qstrOutputLabelData.toStdString()); @@ -151,7 +146,8 @@ void MainWindow::save_label_data()const if(!cropped.isNull()) { - string strImgFile = m_fileList.at(m_fileIndex).toStdString(); + string strImgFile = m_imgList.at(m_imgIndex).toStdString(); + strImgFile = strImgFile.substr( strImgFile.find_last_of('/') + 1, strImgFile.find_last_of('.') - strImgFile.find_last_of('/') - 1); @@ -189,12 +185,12 @@ void MainWindow::clear_label_data() void MainWindow::next_label() { - set_label(m_labelIndex + 1); + set_label(m_objIndex + 1); } void MainWindow::prev_label() { - set_label(m_labelIndex - 1); + set_label(m_objIndex - 1); } void MainWindow::load_label_list_data(QString qstrLabelListFile) @@ -207,7 +203,7 @@ void MainWindow::load_label_list_data(QString qstrLabelListFile) for(int i = 0 ; i <= ui->tableWidget_label->rowCount(); i++) ui->tableWidget_label->removeRow(ui->tableWidget_label->currentRow()); - m_labelNameList.clear(); + m_objList.clear(); ui->label_image->m_drawObjectBoxColor.clear(); @@ -219,7 +215,7 @@ void MainWindow::load_label_list_data(QString qstrLabelListFile) std::cout << nRow << endl; QString qstrLabel = QString().fromStdString(strLabel); QColor labelColor = label_img::BOX_COLORS[(fileIndex++)%10]; - m_labelNameList << qstrLabel; + m_objList << qstrLabel; ui->tableWidget_label->insertRow(nRow); @@ -243,17 +239,16 @@ QString MainWindow::get_labeling_data(QString qstrImgFile)const return QString().fromStdString(strLabelData); } -void MainWindow::set_label(int labelIndex) +void MainWindow::set_label(const int labelIndex) { - bool indexIsOutOfRange = (labelIndex < 0 || labelIndex > m_labelNameList.size() - 1); + bool bIndexIsOutOfRange = (labelIndex < 0 || labelIndex > m_objList.size() - 1); - if(!indexIsOutOfRange) + if(!bIndexIsOutOfRange) { - std::cout << "m_labelIndex = "<< m_labelIndex << std::endl; - m_labelIndex = labelIndex; - ui->label_image->setFocusObjectLabel(m_labelIndex); - ui->label_image->setFocusObjectName(m_labelNameList.at(m_labelIndex)); - ui->tableWidget_label->setCurrentCell(m_labelIndex, 0); + m_objIndex = labelIndex; + ui->label_image->setFocusObjectLabel(m_objIndex); + ui->label_image->setFocusObjectName(m_objList.at(m_objIndex)); + ui->tableWidget_label->setCurrentCell(m_objIndex, 0); } } @@ -300,9 +295,9 @@ void MainWindow::openImgDir(bool& ret) else { m_imgDir = imgDir; - m_fileList = fileList; + m_imgList = fileList; - for(QString& str: m_fileList) + for(QString& str: m_imgList) str = m_imgDir + "/" + str; ret = true; } @@ -364,28 +359,13 @@ void MainWindow::keyPressEvent(QKeyEvent * event) { int asciiToNumber = nKey - Qt::Key_0; - if(asciiToNumber < m_labelNameList.size() ) + if(asciiToNumber < m_objList.size() ) { set_label(asciiToNumber); } } } -void MainWindow::mouseCurrentPos() -{ - -} - -void MainWindow::mousePressed() -{ - -} - -void MainWindow::mouseReleased() -{ - -} - void MainWindow::on_pushButton_save_clicked() { save_label_data(); @@ -393,7 +373,9 @@ void MainWindow::on_pushButton_save_clicked() void MainWindow::on_tableWidget_label_cellDoubleClicked(int row, int column) { - if(column == 1) + bool bColorAttributeClicked = (column == 1); + + if(bColorAttributeClicked) { QColor color = QColorDialog::getColor(Qt::white,this,"Set Label Color"); if(color.isValid()) diff --git a/mainwindow.h b/mainwindow.h index 31878a2..c3dbc51 100644 --- a/mainwindow.h +++ b/mainwindow.h @@ -30,10 +30,6 @@ private slots: void keyPressEvent(QKeyEvent *); - void mouseCurrentPos(); - void mousePressed(); - void mouseReleased(); - void next_img(); void prev_img(); void save_label_data() const; @@ -57,28 +53,27 @@ private: void set_label_progress(const int); void set_focused_file(const int); - void goto_img(int); + void goto_img(const int); void load_label_list_data(QString); QString get_labeling_data(QString)const; - void set_label(int); - void set_label_color(int , QColor); + void set_label(const int); + void set_label_color(const int , QColor); void pjreddie_style_msgBox(QMessageBox::Icon, QString, QString); void openImgDir(bool&); void openObjListFile(bool&); - Ui::MainWindow *ui; QString m_imgDir; - QStringList m_fileList; - int m_fileIndex; + QStringList m_imgList; + int m_imgIndex; - QStringList m_labelNameList; - int m_labelIndex; + QStringList m_objList; + int m_objIndex; protected: void wheelEvent(QWheelEvent *); diff --git a/mainwindow.ui b/mainwindow.ui index 4a59271..a153ae0 100644 --- a/mainwindow.ui +++ b/mainwindow.ui @@ -709,11 +709,20 @@ QTableView { 0 0 1528 - 21 + 25 + + true + + + false + + + false + TopToolBarArea