[pktools] 222/375: added pksvm_gui

Bas Couwenberg sebastic at xs4all.nl
Wed Dec 3 21:54:16 UTC 2014


This is an automated email from the git hooks/post-receive script.

sebastic-guest pushed a commit to branch upstream-master
in repository pktools.

commit 85f5c0c2ef113f6fe2003785058a93b8908b432b
Author: Pieter Kempeneers <pieter.kempeneers at vito.be>
Date:   Tue Apr 1 11:32:35 2014 +0200

    added pksvm_gui
---
 qt/pkclassify_svm/main.cpp                      |  11 -
 qt/pkclassify_svm/mainwindow.h                  |  51 ---
 qt/pkclassify_svm/pkclassify_svm.pro            |  20 -
 qt/pkextract/mainwindow.cc                      |  34 --
 qt/pkextract/mainwindow.h                       |  58 ++-
 qt/pkextract/mainwindow.ui                      | 528 +++++++++++++++++++++++-
 qt/pkextract/pkextract.pro                      |  32 +-
 qt/{pkextract/main.cc => pksvm_gui/main.cpp}    |   5 +-
 qt/{pkclassify_svm => pksvm_gui}/mainwindow.cpp |  85 +++-
 qt/{pkextract => pksvm_gui}/mainwindow.h        |  39 +-
 qt/{pkclassify_svm => pksvm_gui}/mainwindow.ui  |  55 ++-
 qt/pksvm_gui/pksvm_gui.pro                      |  41 ++
 12 files changed, 775 insertions(+), 184 deletions(-)

diff --git a/qt/pkclassify_svm/main.cpp b/qt/pkclassify_svm/main.cpp
deleted file mode 100644
index b48f94e..0000000
--- a/qt/pkclassify_svm/main.cpp
+++ /dev/null
@@ -1,11 +0,0 @@
-#include "mainwindow.h"
-#include <QApplication>
-
-int main(int argc, char *argv[])
-{
-    QApplication a(argc, argv);
-    MainWindow w;
-    w.show();
-
-    return a.exec();
-}
diff --git a/qt/pkclassify_svm/mainwindow.h b/qt/pkclassify_svm/mainwindow.h
deleted file mode 100644
index e7d7dd2..0000000
--- a/qt/pkclassify_svm/mainwindow.h
+++ /dev/null
@@ -1,51 +0,0 @@
-#ifndef MAINWINDOW_H
-#define MAINWINDOW_H
-
-#include <QMainWindow>
-
-namespace Ui {
-class MainWindow;
-}
-
-class MainWindow : public QMainWindow
-{
-    Q_OBJECT
-
-public:
-    explicit MainWindow(QWidget *parent = 0);
-    ~MainWindow();
-
-private slots:
-    void on_actionInput_triggered();
-
-    void on_actionTraining_triggered();
-
-    void on_actionMask_triggered();
-
-    void on_actionOutput_triggered();
-
-    void on_toolButton_input_clicked();
-
-    void on_toolButton_mask_clicked();
-
-    void on_toolButton_output_clicked();
-
-    void on_toolButton_training_clicked();
-
-    void on_training_returnPressed();
-
-    void on_pushButton_run_clicked();
-
-    void on_lineEdit_2_returnPressed();
-
-private:
-    void setClassTable(const QStringList &labels);
-
-    Ui::MainWindow *ui;
-    QString m_input;
-    QString m_training;
-    QString m_mask;
-    QString m_output;
-};
-
-#endif // MAINWINDOW_H
diff --git a/qt/pkclassify_svm/pkclassify_svm.pro b/qt/pkclassify_svm/pkclassify_svm.pro
deleted file mode 100644
index 002f3d8..0000000
--- a/qt/pkclassify_svm/pkclassify_svm.pro
+++ /dev/null
@@ -1,20 +0,0 @@
-#-------------------------------------------------
-#
-# Project created by QtCreator 2014-03-21T13:16:29
-#
-#-------------------------------------------------
-
-QT       += core gui
-
-greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
-
-TARGET = pkclassify_svm
-TEMPLATE = app
-
-
-SOURCES += main.cpp\
-        mainwindow.cpp
-
-HEADERS  += mainwindow.h
-
-FORMS    += mainwindow.ui
diff --git a/qt/pkextract/mainwindow.cc b/qt/pkextract/mainwindow.cc
deleted file mode 100644
index 791bb0c..0000000
--- a/qt/pkextract/mainwindow.cc
+++ /dev/null
@@ -1,34 +0,0 @@
-/**********************************************************************
-mainwindow.cc
-Copyright (C) 2008-2014 Pieter Kempeneers
-
-This file is part of pktools
-
-pktools is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
-
-pktools is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with pktools.  If not, see <http://www.gnu.org/licenses/>.
-***********************************************************************/
-
-#include "mainwindow.h"
-#include "ui_mainwindow.h"
-
-MainWindow::MainWindow(QWidget *parent) :
-    QMainWindow(parent),
-    ui(new Ui::MainWindow)
-{
-    ui->setupUi(this);
-}
-
-MainWindow::~MainWindow()
-{
-    delete ui;
-}
diff --git a/qt/pkextract/mainwindow.h b/qt/pkextract/mainwindow.h
index c4006c4..de398a7 100644
--- a/qt/pkextract/mainwindow.h
+++ b/qt/pkextract/mainwindow.h
@@ -1,23 +1,3 @@
-/**********************************************************************
-mainwindow.h
-Copyright (C) 2008-2014 Pieter Kempeneers
-
-This file is part of pktools
-
-pktools is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
-
-pktools is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with pktools.  If not, see <http://www.gnu.org/licenses/>.
-***********************************************************************/
-
 #ifndef MAINWINDOW_H
 #define MAINWINDOW_H
 
@@ -30,13 +10,47 @@ class MainWindow;
 class MainWindow : public QMainWindow
 {
     Q_OBJECT
-    
+
 public:
     explicit MainWindow(QWidget *parent = 0);
     ~MainWindow();
-    
+
+private slots:
+    void on_actionInput_triggered();
+
+    void on_actionTraining_triggered();
+
+    void on_actionMask_triggered();
+
+    void on_actionOutput_triggered();
+
+    void on_toolButton_input_clicked();
+
+    void on_toolButton_mask_clicked();
+
+    void on_toolButton_output_clicked();
+
+    void on_toolButton_training_clicked();
+
+    void on_training_returnPressed();
+
+    void on_pushButton_run_clicked();
+
+    void on_lineEdit_2_returnPressed();
+
+    void on_toolButton_createTable_clicked();
+
+    void on_pushButton_restore_clicked();
+
 private:
+    void setClassTable(const QStringList &labels);
+    void setDefaults();
+
     Ui::MainWindow *ui;
+    QString m_input;
+    QString m_training;
+    QString m_mask;
+    QString m_output;
 };
 
 #endif // MAINWINDOW_H
diff --git a/qt/pkextract/mainwindow.ui b/qt/pkextract/mainwindow.ui
index 6050363..5eb6f74 100644
--- a/qt/pkextract/mainwindow.ui
+++ b/qt/pkextract/mainwindow.ui
@@ -1,24 +1,528 @@
+<?xml version="1.0" encoding="UTF-8"?>
 <ui version="4.0">
  <class>MainWindow</class>
- <widget class="QMainWindow" name="MainWindow" >
-  <property name="geometry" >
+ <widget class="QMainWindow" name="MainWindow">
+  <property name="geometry">
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>400</width>
-    <height>300</height>
+    <width>423</width>
+    <height>458</height>
    </rect>
   </property>
-  <property name="windowTitle" >
-   <string>MainWindow</string>
+  <property name="windowTitle">
+   <string>pksvm</string>
   </property>
-  <widget class="QMenuBar" name="menuBar" />
-  <widget class="QToolBar" name="mainToolBar" />
-  <widget class="QWidget" name="centralWidget" />
-  <widget class="QStatusBar" name="statusBar" />
+  <widget class="QWidget" name="centralWidget">
+   <widget class="QTabWidget" name="tabWidget">
+    <property name="geometry">
+     <rect>
+      <x>10</x>
+      <y>30</y>
+      <width>391</width>
+      <height>341</height>
+     </rect>
+    </property>
+    <property name="currentIndex">
+     <number>1</number>
+    </property>
+    <widget class="QWidget" name="tab_2">
+     <attribute name="title">
+      <string>Input/Output</string>
+     </attribute>
+     <widget class="QLabel" name="label_3">
+      <property name="geometry">
+       <rect>
+        <x>10</x>
+        <y>10</y>
+        <width>71</width>
+        <height>16</height>
+       </rect>
+      </property>
+      <property name="toolTip">
+       <string><html><head/><body><p>Input image (raster or vector) containing band information</p></body></html></string>
+      </property>
+      <property name="text">
+       <string>Input data</string>
+      </property>
+     </widget>
+     <widget class="QLineEdit" name="input">
+      <property name="geometry">
+       <rect>
+        <x>80</x>
+        <y>10</y>
+        <width>113</width>
+        <height>20</height>
+       </rect>
+      </property>
+     </widget>
+     <widget class="QToolButton" name="toolButton_input">
+      <property name="geometry">
+       <rect>
+        <x>200</x>
+        <y>10</y>
+        <width>25</width>
+        <height>19</height>
+       </rect>
+      </property>
+      <property name="text">
+       <string>...</string>
+      </property>
+     </widget>
+     <widget class="QLabel" name="label_13">
+      <property name="geometry">
+       <rect>
+        <x>10</x>
+        <y>40</y>
+        <width>61</width>
+        <height>16</height>
+       </rect>
+      </property>
+      <property name="toolTip">
+       <string><html><head/><body><p>Pixels in input image where mask image has msknodata will not be classified, but obtain a constant value (=nodata)</p></body></html></string>
+      </property>
+      <property name="text">
+       <string>Mask image</string>
+      </property>
+     </widget>
+     <widget class="QLineEdit" name="mask">
+      <property name="geometry">
+       <rect>
+        <x>80</x>
+        <y>40</y>
+        <width>113</width>
+        <height>20</height>
+       </rect>
+      </property>
+     </widget>
+     <widget class="QToolButton" name="toolButton_mask">
+      <property name="geometry">
+       <rect>
+        <x>200</x>
+        <y>40</y>
+        <width>25</width>
+        <height>19</height>
+       </rect>
+      </property>
+      <property name="text">
+       <string>...</string>
+      </property>
+     </widget>
+     <widget class="QLabel" name="label_14">
+      <property name="geometry">
+       <rect>
+        <x>230</x>
+        <y>40</y>
+        <width>61</width>
+        <height>16</height>
+       </rect>
+      </property>
+      <property name="text">
+       <string>msknodata</string>
+      </property>
+     </widget>
+     <widget class="QLineEdit" name="msknodata">
+      <property name="geometry">
+       <rect>
+        <x>290</x>
+        <y>40</y>
+        <width>41</width>
+        <height>20</height>
+       </rect>
+      </property>
+     </widget>
+     <widget class="QLabel" name="label_15">
+      <property name="geometry">
+       <rect>
+        <x>10</x>
+        <y>100</y>
+        <width>71</width>
+        <height>16</height>
+       </rect>
+      </property>
+      <property name="toolTip">
+       <string><html><head/><body><p>Classified map (raster or vector according to input image).</p></body></html></string>
+      </property>
+      <property name="text">
+       <string>Output data</string>
+      </property>
+     </widget>
+     <widget class="QLineEdit" name="output">
+      <property name="geometry">
+       <rect>
+        <x>80</x>
+        <y>100</y>
+        <width>113</width>
+        <height>20</height>
+       </rect>
+      </property>
+     </widget>
+     <widget class="QToolButton" name="toolButton_output">
+      <property name="geometry">
+       <rect>
+        <x>200</x>
+        <y>100</y>
+        <width>25</width>
+        <height>19</height>
+       </rect>
+      </property>
+      <property name="text">
+       <string>...</string>
+      </property>
+     </widget>
+     <widget class="QLineEdit" name="sample">
+      <property name="geometry">
+       <rect>
+        <x>80</x>
+        <y>70</y>
+        <width>113</width>
+        <height>20</height>
+       </rect>
+      </property>
+     </widget>
+     <widget class="QToolButton" name="toolButton_sample">
+      <property name="geometry">
+       <rect>
+        <x>200</x>
+        <y>70</y>
+        <width>25</width>
+        <height>19</height>
+       </rect>
+      </property>
+      <property name="text">
+       <string>...</string>
+      </property>
+     </widget>
+     <widget class="QLabel" name="label_23">
+      <property name="geometry">
+       <rect>
+        <x>10</x>
+        <y>70</y>
+        <width>71</width>
+        <height>16</height>
+       </rect>
+      </property>
+      <property name="toolTip">
+       <string><html><head/><body><p>Pixels in input image where mask image has msknodata will not be classified, but obtain a constant value (=nodata)</p></body></html></string>
+      </property>
+      <property name="text">
+       <string>Sample image</string>
+      </property>
+     </widget>
+     <widget class="QLabel" name="label_16">
+      <property name="geometry">
+       <rect>
+        <x>230</x>
+        <y>100</y>
+        <width>41</width>
+        <height>16</height>
+       </rect>
+      </property>
+      <property name="text">
+       <string>format</string>
+      </property>
+     </widget>
+     <widget class="QComboBox" name="f">
+      <property name="geometry">
+       <rect>
+        <x>270</x>
+        <y>100</y>
+        <width>69</width>
+        <height>22</height>
+       </rect>
+      </property>
+     </widget>
+     <widget class="QCheckBox" name="polygon">
+      <property name="geometry">
+       <rect>
+        <x>230</x>
+        <y>130</y>
+        <width>71</width>
+        <height>17</height>
+       </rect>
+      </property>
+      <property name="toolTip">
+       <string><html><head/><body><p>Keep output features as polygons (only if input vector are polygons as well)</p></body></html></string>
+      </property>
+      <property name="text">
+       <string>polygons</string>
+      </property>
+     </widget>
+    </widget>
+    <widget class="QWidget" name="tab">
+     <attribute name="title">
+      <string>Extract</string>
+     </attribute>
+     <widget class="QLineEdit" name="bname">
+      <property name="geometry">
+       <rect>
+        <x>200</x>
+        <y>80</y>
+        <width>41</width>
+        <height>20</height>
+       </rect>
+      </property>
+     </widget>
+     <widget class="QLabel" name="label_2">
+      <property name="geometry">
+       <rect>
+        <x>10</x>
+        <y>80</y>
+        <width>191</width>
+        <height>16</height>
+       </rect>
+      </property>
+      <property name="toolTip">
+       <string><html><head/><body><p>name of the attribute in your training vector file that corresponds to the class labels </p></body></html></string>
+      </property>
+      <property name="text">
+       <string>attribute (prefix) name for raster info</string>
+      </property>
+     </widget>
+     <widget class="QTableView" name="tableView_classes">
+      <property name="geometry">
+       <rect>
+        <x>160</x>
+        <y>130</y>
+        <width>221</width>
+        <height>181</height>
+       </rect>
+      </property>
+     </widget>
+     <widget class="QLabel" name="label_17">
+      <property name="geometry">
+       <rect>
+        <x>190</x>
+        <y>110</y>
+        <width>161</width>
+        <height>20</height>
+       </rect>
+      </property>
+      <property name="text">
+       <string>class name-threshold (%) pairs</string>
+      </property>
+     </widget>
+     <widget class="QLabel" name="label_20">
+      <property name="geometry">
+       <rect>
+        <x>10</x>
+        <y>150</y>
+        <width>91</width>
+        <height>31</height>
+       </rect>
+      </property>
+      <property name="text">
+       <string>prepare table for</string>
+      </property>
+     </widget>
+     <widget class="QLineEdit" name="nclass">
+      <property name="geometry">
+       <rect>
+        <x>94</x>
+        <y>155</y>
+        <width>31</width>
+        <height>20</height>
+       </rect>
+      </property>
+     </widget>
+     <widget class="QToolButton" name="toolButton_createTable">
+      <property name="geometry">
+       <rect>
+        <x>130</x>
+        <y>156</y>
+        <width>25</width>
+        <height>19</height>
+       </rect>
+      </property>
+      <property name="text">
+       <string>-></string>
+      </property>
+     </widget>
+     <widget class="QLabel" name="label_21">
+      <property name="geometry">
+       <rect>
+        <x>90</x>
+        <y>130</y>
+        <width>51</width>
+        <height>31</height>
+       </rect>
+      </property>
+      <property name="text">
+       <string># classes</string>
+      </property>
+     </widget>
+     <widget class="QLabel" name="label_22">
+      <property name="geometry">
+       <rect>
+        <x>20</x>
+        <y>200</y>
+        <width>131</width>
+        <height>61</height>
+       </rect>
+      </property>
+      <property name="text">
+       <string>replace label names with
+ the labels in your training
+ vector file</string>
+      </property>
+     </widget>
+     <widget class="QComboBox" name="rule">
+      <property name="geometry">
+       <rect>
+        <x>90</x>
+        <y>10</y>
+        <width>69</width>
+        <height>22</height>
+       </rect>
+      </property>
+     </widget>
+     <widget class="QLabel" name="label_4">
+      <property name="geometry">
+       <rect>
+        <x>10</x>
+        <y>10</y>
+        <width>81</width>
+        <height>16</height>
+       </rect>
+      </property>
+      <property name="toolTip">
+       <string><html><head/><body><p>name of the attribute in your training vector file that corresponds to the class labels </p></body></html></string>
+      </property>
+      <property name="text">
+       <string>extraction rule</string>
+      </property>
+     </widget>
+    </widget>
+    <widget class="QWidget" name="tab_4">
+     <attribute name="title">
+      <string>Command line</string>
+     </attribute>
+     <widget class="QLabel" name="label_18">
+      <property name="geometry">
+       <rect>
+        <x>10</x>
+        <y>10</y>
+        <width>81</width>
+        <height>16</height>
+       </rect>
+      </property>
+      <property name="text">
+       <string>Command line</string>
+      </property>
+     </widget>
+     <widget class="QLineEdit" name="commandLineEdit">
+      <property name="geometry">
+       <rect>
+        <x>10</x>
+        <y>40</y>
+        <width>361</width>
+        <height>61</height>
+       </rect>
+      </property>
+     </widget>
+     <widget class="QLabel" name="label_19">
+      <property name="geometry">
+       <rect>
+        <x>10</x>
+        <y>120</y>
+        <width>81</width>
+        <height>16</height>
+       </rect>
+      </property>
+      <property name="text">
+       <string>Console output</string>
+      </property>
+     </widget>
+     <widget class="QPlainTextEdit" name="consoleEdit">
+      <property name="geometry">
+       <rect>
+        <x>10</x>
+        <y>140</y>
+        <width>361</width>
+        <height>171</height>
+       </rect>
+      </property>
+     </widget>
+    </widget>
+   </widget>
+   <widget class="QPushButton" name="pushButton_run">
+    <property name="geometry">
+     <rect>
+      <x>10</x>
+      <y>380</y>
+      <width>75</width>
+      <height>21</height>
+     </rect>
+    </property>
+    <property name="text">
+     <string>Run</string>
+    </property>
+   </widget>
+   <widget class="QPushButton" name="pushButton_restore">
+    <property name="geometry">
+     <rect>
+      <x>320</x>
+      <y>10</y>
+      <width>91</width>
+      <height>21</height>
+     </rect>
+    </property>
+    <property name="text">
+     <string>Restore defaults</string>
+    </property>
+   </widget>
+  </widget>
+  <widget class="QMenuBar" name="menuBar">
+   <property name="geometry">
+    <rect>
+     <x>0</x>
+     <y>0</y>
+     <width>423</width>
+     <height>21</height>
+    </rect>
+   </property>
+   <widget class="QMenu" name="menuFile">
+    <property name="title">
+     <string>File</string>
+    </property>
+    <addaction name="actionInput"/>
+    <addaction name="actionMask"/>
+    <addaction name="actionTraining"/>
+    <addaction name="actionOutput"/>
+   </widget>
+   <addaction name="menuFile"/>
+  </widget>
+  <widget class="QToolBar" name="mainToolBar">
+   <attribute name="toolBarArea">
+    <enum>TopToolBarArea</enum>
+   </attribute>
+   <attribute name="toolBarBreak">
+    <bool>false</bool>
+   </attribute>
+  </widget>
+  <widget class="QStatusBar" name="statusBar"/>
+  <action name="actionInput">
+   <property name="text">
+    <string>Input</string>
+   </property>
+  </action>
+  <action name="actionTraining">
+   <property name="text">
+    <string>Sample</string>
+   </property>
+  </action>
+  <action name="actionMask">
+   <property name="text">
+    <string>Mask</string>
+   </property>
+  </action>
+  <action name="actionOutput">
+   <property name="text">
+    <string>Output</string>
+   </property>
+  </action>
  </widget>
- <layoutDefault spacing="6" margin="11" />
- <pixmapfunction></pixmapfunction>
+ <layoutdefault spacing="6" margin="11"/>
  <resources/>
  <connections/>
 </ui>
diff --git a/qt/pkextract/pkextract.pro b/qt/pkextract/pkextract.pro
index 75252b3..3f6203f 100644
--- a/qt/pkextract/pkextract.pro
+++ b/qt/pkextract/pkextract.pro
@@ -1,6 +1,6 @@
 #-------------------------------------------------
 #
-# Project created by QtCreator 2014-03-20T17:53:10
+# Project created by QtCreator 2014-03-21T13:16:29
 #
 #-------------------------------------------------
 
@@ -8,13 +8,35 @@ QT       += core gui
 
 greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
 
-TARGET = pkextract
+TARGET = pksvm
 TEMPLATE = app
 
 
-SOURCES += main.cc\
-        mainwindow.cc
+SOURCES += main.cpp\
+        mainwindow.cpp
 
-HEADERS  += mainwindow.h
+HEADERS  += mainwindow.h \
+    ../../src/imageclasses/ImgReaderOgr.h
 
 FORMS    += mainwindow.ui
+
+#win32:CONFIG(release, debug|release): LIBS += -L$$PWD/../../vis_studio/release/ -limageclasses
+#else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/../../vis_studio/debug/ -limageclasses
+#else:unix: LIBS += -L$$PWD/../../vis_studio/ -limageclasses
+
+#INCLUDEPATH += $$PWD/../../src/imageclasses
+#DEPENDPATH += $$PWD/../../src/imageclasses
+
+#win32:CONFIG(release, debug|release): LIBS += -L$$PWD/../../../../vis_studio/install/lib/ -lgdal_i
+#else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/../../../../vis_studio/install/lib/ -lgdal_i
+#else:unix: LIBS += -L$$PWD/../../../../vis_studio/install/lib/ -lgdal_i
+
+#INCLUDEPATH += $$PWD/../../../../vis_studio/install/include
+#DEPENDPATH += $$PWD/../../../../vis_studio/install/include
+
+#win32:CONFIG(release, debug|release): LIBS += -L$$PWD/../../vis_studio/release/ -lbase
+#else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/../../vis_studio/debug/ -lbase
+#else:unix: LIBS += -L$$PWD/../../vis_studio/ -lbase
+
+#INCLUDEPATH += $$PWD/../../src
+#DEPENDPATH += $$PWD/../../src/base
diff --git a/qt/pkextract/main.cc b/qt/pksvm_gui/main.cpp
similarity index 97%
rename from qt/pkextract/main.cc
rename to qt/pksvm_gui/main.cpp
index b53cf84..f07fc9f 100644
--- a/qt/pkextract/main.cc
+++ b/qt/pksvm_gui/main.cpp
@@ -1,5 +1,5 @@
 /**********************************************************************
-main.cc
+main.cpp: GUI for pktools
 Copyright (C) 2008-2014 Pieter Kempeneers
 
 This file is part of pktools
@@ -17,7 +17,6 @@ GNU General Public License for more details.
 You should have received a copy of the GNU General Public License
 along with pktools.  If not, see <http://www.gnu.org/licenses/>.
 ***********************************************************************/
-
 #include "mainwindow.h"
 #include <QApplication>
 
@@ -26,6 +25,6 @@ int main(int argc, char *argv[])
     QApplication a(argc, argv);
     MainWindow w;
     w.show();
-    
+
     return a.exec();
 }
diff --git a/qt/pkclassify_svm/mainwindow.cpp b/qt/pksvm_gui/mainwindow.cpp
similarity index 65%
rename from qt/pkclassify_svm/mainwindow.cpp
rename to qt/pksvm_gui/mainwindow.cpp
index f600493..10b389b 100644
--- a/qt/pkclassify_svm/mainwindow.cpp
+++ b/qt/pksvm_gui/mainwindow.cpp
@@ -1,3 +1,22 @@
+/**********************************************************************
+mainwindow.cpp: GUI for pktools
+Copyright (C) 2008-2014 Pieter Kempeneers
+
+This file is part of pktools
+
+pktools is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+pktools is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with pktools.  If not, see <http://www.gnu.org/licenses/>.
+***********************************************************************/
 #include "mainwindow.h"
 #include "ui_mainwindow.h"
 #include <QFileDialog>
@@ -16,13 +35,7 @@ MainWindow::MainWindow(QWidget *parent) :
     QStringList kernellist;
     kernellist << "radial" << "linear" << "polynomial" << "sigmoid";
     ui->kerneltype->addItems(kernellist);
-    ui->coef0->setText("0");
-    ui->ccost->setText("1");
-    ui->gamma->setText("0");
-    ui->nu->setText("0.5");
-    //test
-    m_training="d:\\osgeo\\course\\openstreetmap\\training2.sqlite";
-    ui->training->setText(m_training);
+    setDefaults();
 }
 
 MainWindow::~MainWindow()
@@ -30,6 +43,26 @@ MainWindow::~MainWindow()
     delete ui;
 }
 
+void MainWindow::setDefaults()
+{
+    //tab training
+    //m_training="d:\\osgeo\\course\\openstreetmap\\training2.sqlite";
+//    ui->training->setText(m_training);
+    ui->label->setText("label");
+    ui->cv->setText("0");
+    //tab input/output
+    ui->msknodata->setText("0");
+    ui->nodata->setText("0");
+    //tab classifier
+    ui->coef0->setText("0");
+    ui->nu->setText("0.5");
+    ui->kd->setText("3");
+    ui->label->setText("label");
+    ui->cv->setText("0");
+    ui->gamma->setText("0");
+    ui->ccost->setText("1");
+}
+
 void MainWindow::on_actionTraining_triggered()
 {
     m_training = QFileDialog::getOpenFileName(this, "Training");
@@ -52,6 +85,7 @@ void MainWindow::on_actionOutput_triggered()
 void MainWindow::on_actionInput_triggered()
 {
     m_input = QFileDialog::getOpenFileName(this, "Input");
+    ui->input->setText(m_input);
 }
 
 void MainWindow::on_toolButton_input_clicked()
@@ -76,20 +110,22 @@ void MainWindow::on_toolButton_training_clicked()
 
 void MainWindow::on_training_returnPressed()
 {
-    m_training=ui->training->text();
-    QStringList labels;
-    labels << "forest" << "non-forest";
-    setClassTable(labels);
+    //eventually read classes from vector file to fill in table...
 }
 
 void MainWindow::setClassTable(const QStringList &labels)
 {
-    QStandardItemModel *model = new QStandardItemModel(labels.size(),2,this); //2 Rows and 3 Columns
+    QStandardItemModel *model = new QStandardItemModel(labels.size(),3,this); //nlabel rows and 3 columns
     model->setHorizontalHeaderItem(0, new QStandardItem(QString("label name")));
-    model->setHorizontalHeaderItem(1, new QStandardItem(QString("class  number")));
+    model->setHorizontalHeaderItem(1, new QStandardItem(QString("class nr")));
+    model->setHorizontalHeaderItem(2, new QStandardItem(QString("prior prob")));
     for(int ilabel=0;ilabel<labels.size();++ilabel){
-        QStandardItem *firstRow = new QStandardItem(QString(labels[ilabel]));
-        model->setItem(ilabel,0,firstRow);
+        QStandardItem *firstCol = new QStandardItem(QString(labels[ilabel]));
+        model->setItem(ilabel,0,firstCol);
+        QStandardItem *secondCol = new QStandardItem(QString::number(ilabel+1));
+        model->setItem(ilabel,1,secondCol);
+        QStandardItem *thirdCol = new QStandardItem(QString::number(1.0/labels.size()));
+        model->setItem(ilabel,2,thirdCol);
     }
     ui->tableView_labels->setModel(model);
 }
@@ -125,7 +161,7 @@ void MainWindow::on_pushButton_run_clicked()
             qsOption+=(*qcbit)->objectName();
             program+=qsOption;
             program+=" ";
-            program+=QString::number((*qcbit)->currentIndex());
+            program+=(*qcbit)->currentText();
         }
 
         QList<QLineEdit*> qlineEditList = this->findChildren<QLineEdit *>();
@@ -145,7 +181,6 @@ void MainWindow::on_pushButton_run_clicked()
 
 //        QProcess *myProcess = new QProcess(parent);
         QProcess *myProcess = new QProcess(this);
-
         myProcess->start(program);
         myProcess->waitForFinished(-1);
         QString p_stdout = myProcess->readAll();
@@ -160,7 +195,19 @@ void MainWindow::on_pushButton_run_clicked()
     }
 }
 
-void MainWindow::on_lineEdit_2_returnPressed()
+void MainWindow::on_toolButton_createTable_clicked()
+{
+    int nclass=ui->nclass->text().toInt();
+    QStringList labels;
+    for(int iclass=1;iclass<=nclass;++iclass){
+        QString lstring="label";
+        lstring+=QString::number(iclass);
+        labels << lstring;
+    }
+    setClassTable(labels);
+}
+
+void MainWindow::on_pushButton_restore_clicked()
 {
-    //run
+    setDefaults();
 }
diff --git a/qt/pkextract/mainwindow.h b/qt/pksvm_gui/mainwindow.h
similarity index 61%
copy from qt/pkextract/mainwindow.h
copy to qt/pksvm_gui/mainwindow.h
index c4006c4..27fa254 100644
--- a/qt/pkextract/mainwindow.h
+++ b/qt/pksvm_gui/mainwindow.h
@@ -1,5 +1,5 @@
 /**********************************************************************
-mainwindow.h
+mainwindow.h: GUI for pktools
 Copyright (C) 2008-2014 Pieter Kempeneers
 
 This file is part of pktools
@@ -17,7 +17,6 @@ GNU General Public License for more details.
 You should have received a copy of the GNU General Public License
 along with pktools.  If not, see <http://www.gnu.org/licenses/>.
 ***********************************************************************/
-
 #ifndef MAINWINDOW_H
 #define MAINWINDOW_H
 
@@ -30,13 +29,45 @@ class MainWindow;
 class MainWindow : public QMainWindow
 {
     Q_OBJECT
-    
+
 public:
     explicit MainWindow(QWidget *parent = 0);
     ~MainWindow();
-    
+
+private slots:
+    void on_actionInput_triggered();
+
+    void on_actionTraining_triggered();
+
+    void on_actionMask_triggered();
+
+    void on_actionOutput_triggered();
+
+    void on_toolButton_input_clicked();
+
+    void on_toolButton_mask_clicked();
+
+    void on_toolButton_output_clicked();
+
+    void on_toolButton_training_clicked();
+
+    void on_training_returnPressed();
+
+    void on_pushButton_run_clicked();
+
+    void on_toolButton_createTable_clicked();
+
+    void on_pushButton_restore_clicked();
+
 private:
+    void setClassTable(const QStringList &labels);
+    void setDefaults();
+
     Ui::MainWindow *ui;
+    QString m_input;
+    QString m_training;
+    QString m_mask;
+    QString m_output;
 };
 
 #endif // MAINWINDOW_H
diff --git a/qt/pkclassify_svm/mainwindow.ui b/qt/pksvm_gui/mainwindow.ui
similarity index 91%
rename from qt/pkclassify_svm/mainwindow.ui
rename to qt/pksvm_gui/mainwindow.ui
index 4c549e8..19cdd63 100644
--- a/qt/pkclassify_svm/mainwindow.ui
+++ b/qt/pksvm_gui/mainwindow.ui
@@ -11,7 +11,7 @@
    </rect>
   </property>
   <property name="windowTitle">
-   <string>MainWindow</string>
+   <string>pksvm_gui</string>
   </property>
   <widget class="QWidget" name="centralWidget">
    <widget class="QTabWidget" name="tabWidget">
@@ -24,7 +24,7 @@
      </rect>
     </property>
     <property name="currentIndex">
-     <number>3</number>
+     <number>2</number>
     </property>
     <widget class="QWidget" name="tab">
      <attribute name="title">
@@ -135,6 +135,55 @@
        <string>class name-value pairs</string>
       </property>
      </widget>
+     <widget class="QLabel" name="label_20">
+      <property name="geometry">
+       <rect>
+        <x>10</x>
+        <y>150</y>
+        <width>91</width>
+        <height>31</height>
+       </rect>
+      </property>
+      <property name="text">
+       <string>prepare table for</string>
+      </property>
+     </widget>
+     <widget class="QLineEdit" name="nclass">
+      <property name="geometry">
+       <rect>
+        <x>94</x>
+        <y>155</y>
+        <width>31</width>
+        <height>20</height>
+       </rect>
+      </property>
+     </widget>
+     <widget class="QToolButton" name="toolButton_createTable">
+      <property name="geometry">
+       <rect>
+        <x>130</x>
+        <y>156</y>
+        <width>25</width>
+        <height>19</height>
+       </rect>
+      </property>
+      <property name="text">
+       <string>-></string>
+      </property>
+     </widget>
+     <widget class="QLabel" name="label_21">
+      <property name="geometry">
+       <rect>
+        <x>90</x>
+        <y>130</y>
+        <width>51</width>
+        <height>31</height>
+       </rect>
+      </property>
+      <property name="text">
+       <string># classes</string>
+      </property>
+     </widget>
     </widget>
     <widget class="QWidget" name="tab_2">
      <attribute name="title">
@@ -358,7 +407,7 @@
        <string>Kernel degree</string>
       </property>
      </widget>
-     <widget class="QLineEdit" name="lineEdit">
+     <widget class="QLineEdit" name="kd">
       <property name="geometry">
        <rect>
         <x>270</x>
diff --git a/qt/pksvm_gui/pksvm_gui.pro b/qt/pksvm_gui/pksvm_gui.pro
new file mode 100644
index 0000000..26ce07c
--- /dev/null
+++ b/qt/pksvm_gui/pksvm_gui.pro
@@ -0,0 +1,41 @@
+#-------------------------------------------------
+#
+# Project created by QtCreator 2014-03-21T13:16:29
+#
+#-------------------------------------------------
+
+QT       += core gui
+
+greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
+
+TARGET = pksvm_gui
+TEMPLATE = app
+
+
+SOURCES += main.cpp\
+        mainwindow.cpp
+
+HEADERS  += mainwindow.h
+
+FORMS    += mainwindow.ui
+
+#win32:CONFIG(release, debug|release): LIBS += -L$$PWD/../../vis_studio/release/ -limageclasses
+#else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/../../vis_studio/debug/ -limageclasses
+#else:unix: LIBS += -L$$PWD/../../vis_studio/ -limageclasses
+
+#INCLUDEPATH += $$PWD/../../src/imageclasses
+#DEPENDPATH += $$PWD/../../src/imageclasses
+
+#win32:CONFIG(release, debug|release): LIBS += -L$$PWD/../../../../vis_studio/install/lib/ -lgdal_i
+#else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/../../../../vis_studio/install/lib/ -lgdal_i
+#else:unix: LIBS += -L$$PWD/../../../../vis_studio/install/lib/ -lgdal_i
+
+#INCLUDEPATH += $$PWD/../../../../vis_studio/install/include
+#DEPENDPATH += $$PWD/../../../../vis_studio/install/include
+
+#win32:CONFIG(release, debug|release): LIBS += -L$$PWD/../../vis_studio/release/ -lbase
+#else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/../../vis_studio/debug/ -lbase
+#else:unix: LIBS += -L$$PWD/../../vis_studio/ -lbase
+
+#INCLUDEPATH += $$PWD/../../src
+#DEPENDPATH += $$PWD/../../src/base

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-grass/pktools.git



More information about the Pkg-grass-devel mailing list