00001
00002
00003
00004
00005
00006
00007
00008 #include "Qt/ui/SceneUnderstandingForm.h"
00009
00010 #include <qvariant.h>
00011 #include <qfiledialog.h>
00012 #include <qlineedit.h>
00013 #include <qimage.h>
00014 #include <qpixmap.h>
00015 #include <qmessagebox.h>
00016 #include <qpushbutton.h>
00017 #include <qtabwidget.h>
00018 #include <qwidget.h>
00019 #include <qlabel.h>
00020 #include <qspinbox.h>
00021 #include <qlayout.h>
00022 #include <qtooltip.h>
00023 #include <qwhatsthis.h>
00024 #include <qaction.h>
00025 #include <qmenubar.h>
00026 #include <qpopupmenu.h>
00027 #include <qtoolbar.h>
00028 #include <qimage.h>
00029 #include <qpixmap.h>
00030
00031 #include "Raster/Raster.H"
00032 #include "QtUtil/ImageConvert.H"
00033 #include "SIFT/Histogram.H"
00034 #include "Image/FilterOps.H"
00035 #include "Image/ShapeOps.H"
00036 #include "Qt/ImageCanvas.h"
00037 #include "Qt/SceneUnderstandingForm.ui.h"
00038 static const unsigned char image1_data[] = {
00039 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d,
00040 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x16,
00041 0x08, 0x06, 0x00, 0x00, 0x00, 0xc4, 0xb4, 0x6c, 0x3b, 0x00, 0x00, 0x00,
00042 0x99, 0x49, 0x44, 0x41, 0x54, 0x38, 0x8d, 0xed, 0x94, 0x41, 0x0e, 0x85,
00043 0x20, 0x0c, 0x44, 0x5f, 0x89, 0xc7, 0x36, 0x7f, 0x61, 0xbc, 0x77, 0x5d,
00044 0x28, 0x48, 0xa4, 0x28, 0x60, 0xff, 0xce, 0xd9, 0x54, 0x8b, 0xbe, 0x8e,
00045 0x13, 0x04, 0x3e, 0x1d, 0x92, 0x81, 0x77, 0xf4, 0x81, 0xa1, 0x23, 0xdc,
00046 0x2b, 0x34, 0xf6, 0xf4, 0x7a, 0x3d, 0xe2, 0xb8, 0x65, 0xa8, 0x84, 0x3f,
00047 0x40, 0x01, 0x98, 0x2a, 0x0b, 0x3d, 0x5f, 0x62, 0xc5, 0x83, 0x00, 0xaa,
00048 0x1a, 0xd7, 0x05, 0x50, 0x44, 0x9a, 0xb9, 0xd5, 0x07, 0xa7, 0x73, 0xa8,
00049 0xa4, 0xba, 0x4f, 0x92, 0xa2, 0xdf, 0x33, 0x3c, 0x64, 0xc6, 0x3b, 0xeb,
00050 0xbd, 0x82, 0xe5, 0xb8, 0xad, 0xde, 0xcb, 0xcc, 0x78, 0x20, 0xeb, 0x42,
00051 0x66, 0xc6, 0x39, 0x74, 0x5d, 0xfa, 0x80, 0xf3, 0x6f, 0xaf, 0x66, 0xc6,
00052 0x6f, 0xa1, 0x9c, 0x3f, 0x88, 0x2f, 0xb4, 0x70, 0xec, 0x05, 0xcd, 0xc0,
00053 0xbe, 0xd0, 0x78, 0x93, 0xf6, 0x8e, 0x17, 0x14, 0x92, 0x63, 0x5f, 0x68,
00054 0x6c, 0x3e, 0xef, 0xf6, 0xba, 0x3c, 0x8f, 0xdd, 0x36, 0x6d, 0xc4, 0xc0,
00055 0x45, 0x2c, 0x87, 0x81, 0xf8, 0x08, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45,
00056 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82
00057 };
00058
00059
00060
00061
00062
00063
00064
00065 SceneUnderstandingForm::SceneUnderstandingForm( QWidget* parent, const char* name, WFlags fl )
00066 : QMainWindow( parent, name, fl )
00067 {
00068 (void)statusBar();
00069 QImage img;
00070 img.loadFromData( image1_data, sizeof( image1_data ), "PNG" );
00071 image1 = img;
00072 if ( !name )
00073 setName( "SceneUnderstandingForm" );
00074 setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)5, (QSizePolicy::SizeType)7, 0, 0, sizePolicy().hasHeightForWidth() ) );
00075 setCentralWidget( new QWidget( this, "qt_central_widget" ) );
00076 SceneUnderstandingFormLayout = new QVBoxLayout( centralWidget(), 11, 6, "SceneUnderstandingFormLayout");
00077
00078 tabDisp = new QTabWidget( centralWidget(), "tabDisp" );
00079
00080 tab = new QWidget( tabDisp, "tab" );
00081 tabLayout = new QHBoxLayout( tab, 11, 6, "tabLayout");
00082
00083 imgDisp = new ImageCanvas( tab, "imgDisp" );
00084 tabLayout->addWidget( imgDisp );
00085 tabDisp->insertTab( tab, QString::fromLatin1("") );
00086 SceneUnderstandingFormLayout->addWidget( tabDisp );
00087
00088 layout2 = new QHBoxLayout( 0, 0, 6, "layout2");
00089 spacer9 = new QSpacerItem( 70, 20, QSizePolicy::Expanding, QSizePolicy::Minimum );
00090 layout2->addItem( spacer9 );
00091
00092 EvolveBrainButton = new QPushButton( centralWidget(), "EvolveBrainButton" );
00093 layout2->addWidget( EvolveBrainButton );
00094 spacer3 = new QSpacerItem( 110, 20, QSizePolicy::Expanding, QSizePolicy::Minimum );
00095 layout2->addItem( spacer3 );
00096
00097 runButton = new QPushButton( centralWidget(), "runButton" );
00098 layout2->addWidget( runButton );
00099
00100 textLabel1 = new QLabel( centralWidget(), "textLabel1" );
00101 layout2->addWidget( textLabel1 );
00102
00103 timesSpinBox = new QSpinBox( centralWidget(), "timesSpinBox" );
00104 timesSpinBox->setMaxValue( 1000 );
00105 timesSpinBox->setMinValue( 0 );
00106 timesSpinBox->setValue( 1 );
00107 layout2->addWidget( timesSpinBox );
00108 spacer3_2 = new QSpacerItem( 161, 20, QSizePolicy::Expanding, QSizePolicy::Minimum );
00109 layout2->addItem( spacer3_2 );
00110
00111 GenScenepushButton = new QPushButton( centralWidget(), "GenScenepushButton" );
00112 layout2->addWidget( GenScenepushButton );
00113 SceneUnderstandingFormLayout->addLayout( layout2 );
00114
00115 layout3 = new QHBoxLayout( 0, 0, 6, "layout3");
00116
00117 textLabel1_2 = new QLabel( centralWidget(), "textLabel1_2" );
00118 layout3->addWidget( textLabel1_2 );
00119
00120 dialogText = new QLineEdit( centralWidget(), "dialogText" );
00121 layout3->addWidget( dialogText );
00122 SceneUnderstandingFormLayout->addLayout( layout3 );
00123
00124 layout6 = new QHBoxLayout( 0, 0, 6, "layout6");
00125
00126 textLabel2 = new QLabel( centralWidget(), "textLabel2" );
00127 textLabel2->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, textLabel2->sizePolicy().hasHeightForWidth() ) );
00128 layout6->addWidget( textLabel2 );
00129
00130 msgLabel = new QLabel( centralWidget(), "msgLabel" );
00131 layout6->addWidget( msgLabel );
00132 SceneUnderstandingFormLayout->addLayout( layout6 );
00133
00134
00135 fileOpenAction = new QAction( this, "fileOpenAction" );
00136 fileOpenAction->setIconSet( QIconSet( image1 ) );
00137 fileSaveAsAction = new QAction( this, "fileSaveAsAction" );
00138 fileExitAction = new QAction( this, "fileExitAction" );
00139 editConfigureAction = new QAction( this, "editConfigureAction" );
00140 editConfigureAction->setToggleAction( TRUE );
00141 editConfigureAction->setOn( FALSE );
00142 editBias_SettingsAction = new QAction( this, "editBias_SettingsAction" );
00143 viewActionGroup = new QActionGroup( this, "viewActionGroup" );
00144 viewActionGroup->setOn( FALSE );
00145 viewActionGroup->setExclusive( FALSE );
00146 viewActionGroup->setUsesDropDown( FALSE );
00147 viewTrajAction = new QAction( viewActionGroup, "viewTrajAction" );
00148 viewTrajAction->setToggleAction( TRUE );
00149 viewSMapAction = new QAction( viewActionGroup, "viewSMapAction" );
00150 viewSMapAction->setToggleAction( TRUE );
00151 viewChannelsAction = new QAction( viewActionGroup, "viewChannelsAction" );
00152 viewChannelsAction->setToggleAction( TRUE );
00153 editDescriptor_VecAction = new QAction( this, "editDescriptor_VecAction" );
00154 editBayes_NetworkAction = new QAction( this, "editBayes_NetworkAction" );
00155 editBayes_NetworkViewAction = new QAction( this, "editBayes_NetworkViewAction" );
00156 editBayes_NetworkLoad_NetworkAction = new QAction( this, "editBayes_NetworkLoad_NetworkAction" );
00157 editBayes_NetworkSave_NetworkAction = new QAction( this, "editBayes_NetworkSave_NetworkAction" );
00158 editConfigureBias_ImageAction = new QAction( this, "editConfigureBias_ImageAction" );
00159 editConfigureBias_ImageAction->setToggleAction( TRUE );
00160 editConfigureBias_ImageAction->setOn( FALSE );
00161 editConfigureScene_SettingsAction = new QAction( this, "editConfigureScene_SettingsAction" );
00162 editConfigureTrainAction = new QAction( this, "editConfigureTrainAction" );
00163 editConfigureTrainAction->setToggleAction( TRUE );
00164 editConfigureTestAction = new QAction( this, "editConfigureTestAction" );
00165 editConfigureTestAction->setToggleAction( TRUE );
00166 fileOpen_WorkspaceAction = new QAction( this, "fileOpen_WorkspaceAction" );
00167
00168
00169
00170
00171
00172
00173 MenuBar = new QMenuBar( this, "MenuBar" );
00174
00175
00176 fileMenu = new QPopupMenu( this );
00177 fileOpenAction->addTo( fileMenu );
00178 fileOpen_WorkspaceAction->addTo( fileMenu );
00179 fileSaveAsAction->addTo( fileMenu );
00180 fileMenu->insertSeparator();
00181 fileMenu->insertSeparator();
00182 fileExitAction->addTo( fileMenu );
00183 MenuBar->insertItem( QString(""), fileMenu, 1 );
00184
00185 Edit = new QPopupMenu( this );
00186 popupMenu_6 = new QPopupMenu( this );
00187 Edit->insertItem( editConfigureAction->iconSet(), tr( "&Configure" ), popupMenu_6 );
00188 editConfigureBias_ImageAction->addTo( popupMenu_6 );
00189 editConfigureScene_SettingsAction->addTo( popupMenu_6 );
00190 editConfigureTestAction->addTo( popupMenu_6 );
00191 editBias_SettingsAction->addTo( Edit );
00192 editDescriptor_VecAction->addTo( Edit );
00193 popupMenu_12 = new QPopupMenu( this );
00194 Edit->insertItem( editBayes_NetworkAction->iconSet(), tr( "&Bayes Network" ), popupMenu_12 );
00195 editBayes_NetworkViewAction->addTo( popupMenu_12 );
00196 editBayes_NetworkLoad_NetworkAction->addTo( popupMenu_12 );
00197 editBayes_NetworkSave_NetworkAction->addTo( popupMenu_12 );
00198 MenuBar->insertItem( QString(""), Edit, 2 );
00199
00200 View = new QPopupMenu( this );
00201 viewChannelsAction->addTo( View );
00202 viewSMapAction->addTo( View );
00203 viewTrajAction->addTo( View );
00204 MenuBar->insertItem( QString(""), View, 3 );
00205
00206 languageChange();
00207 resize( QSize(763, 784).expandedTo(minimumSizeHint()) );
00208 clearWState( WState_Polished );
00209
00210
00211 connect( fileOpenAction, SIGNAL( activated() ), this, SLOT( fileOpen() ) );
00212 connect( fileExitAction, SIGNAL( activated() ), this, SLOT( close() ) );
00213 connect( editBias_SettingsAction, SIGNAL( activated() ), this, SLOT( showBiasSettings() ) );
00214 connect( viewActionGroup, SIGNAL( selected(QAction*) ), this, SLOT( configureView(QAction*) ) );
00215 connect( imgDisp, SIGNAL( mousePressed(int,int) ), this, SLOT( getDescriptor(int,int) ) );
00216 connect( editDescriptor_VecAction, SIGNAL( activated() ), this, SLOT( showDescriptorVec() ) );
00217 connect( GenScenepushButton, SIGNAL( clicked() ), this, SLOT( genScene() ) );
00218 connect( runButton, SIGNAL( clicked() ), this, SLOT( run() ) );
00219 connect( editBayes_NetworkLoad_NetworkAction, SIGNAL( activated() ), this, SLOT( loadBayesNetwork() ) );
00220 connect( editBayes_NetworkSave_NetworkAction, SIGNAL( activated() ), this, SLOT( saveBayesNetwork() ) );
00221 connect( editBayes_NetworkViewAction, SIGNAL( activated() ), this, SLOT( viewBayesNetwork() ) );
00222 connect( editConfigureBias_ImageAction, SIGNAL( toggled(bool) ), this, SLOT( setBiasImage(bool) ) );
00223 connect( EvolveBrainButton, SIGNAL( pressed() ), this, SLOT( evolveBrain() ) );
00224 connect( editConfigureScene_SettingsAction, SIGNAL( activated() ), this, SLOT( showSceneSettings() ) );
00225 connect( dialogText, SIGNAL( returnPressed() ), this, SLOT( submitDialog() ) );
00226 connect( fileOpen_WorkspaceAction, SIGNAL( activated() ), this, SLOT( fileOpenWorkspace() ) );
00227 }
00228
00229
00230
00231
00232 SceneUnderstandingForm::~SceneUnderstandingForm()
00233 {
00234
00235 }
00236
00237
00238
00239
00240
00241 void SceneUnderstandingForm::languageChange()
00242 {
00243 setCaption( tr( "Bias Image" ) );
00244 tabDisp->changeTab( tab, tr( "Original" ) );
00245 EvolveBrainButton->setText( tr( "Evolve Brain" ) );
00246 runButton->setText( tr( "Run" ) );
00247 textLabel1->setText( tr( "Epochs:" ) );
00248 GenScenepushButton->setText( tr( "Generate\n"
00249 "Scene" ) );
00250 textLabel1_2->setText( tr( "Dialog:" ) );
00251 textLabel2->setText( tr( "Mesg:" ) );
00252 msgLabel->setText( QString::null );
00253 fileOpenAction->setText( tr( "Open" ) );
00254 fileOpenAction->setMenuText( tr( "&Open..." ) );
00255 fileOpenAction->setAccel( tr( "Ctrl+O" ) );
00256 fileSaveAsAction->setText( tr( "Save As" ) );
00257 fileSaveAsAction->setMenuText( tr( "Save &As..." ) );
00258 fileSaveAsAction->setAccel( QString::null );
00259 fileExitAction->setText( tr( "Exit" ) );
00260 fileExitAction->setMenuText( tr( "E&xit" ) );
00261 fileExitAction->setAccel( QString::null );
00262 editConfigureAction->setText( tr( "Configure" ) );
00263 editConfigureAction->setMenuText( tr( "&Configure" ) );
00264 editBias_SettingsAction->setText( tr( "&Bias Settings" ) );
00265 editBias_SettingsAction->setMenuText( tr( "&Bias Settings" ) );
00266 viewActionGroup->setText( tr( "View" ) );
00267 viewActionGroup->setAccel( tr( "Alt+F, S" ) );
00268 viewTrajAction->setText( tr( "View Traj" ) );
00269 viewTrajAction->setMenuText( tr( "View &Traj" ) );
00270 viewTrajAction->setAccel( tr( "Ctrl+T" ) );
00271 viewSMapAction->setText( tr( "View SMap" ) );
00272 viewSMapAction->setAccel( tr( "Ctrl+S" ) );
00273 viewChannelsAction->setText( tr( "view Channels" ) );
00274 editDescriptor_VecAction->setText( tr( "&Descriptor Vec" ) );
00275 editDescriptor_VecAction->setMenuText( tr( "&Descriptor Vec" ) );
00276 editBayes_NetworkAction->setText( tr( "&Bayes Network" ) );
00277 editBayes_NetworkAction->setMenuText( tr( "&Bayes Network" ) );
00278 editBayes_NetworkViewAction->setText( tr( "View" ) );
00279 editBayes_NetworkViewAction->setMenuText( tr( "View" ) );
00280 editBayes_NetworkLoad_NetworkAction->setText( tr( "Load Network" ) );
00281 editBayes_NetworkLoad_NetworkAction->setMenuText( tr( "Load Network" ) );
00282 editBayes_NetworkSave_NetworkAction->setText( tr( "Save Network" ) );
00283 editBayes_NetworkSave_NetworkAction->setMenuText( tr( "Save Network" ) );
00284 editConfigureBias_ImageAction->setText( tr( "Bias Image" ) );
00285 editConfigureBias_ImageAction->setMenuText( tr( "Bias Image" ) );
00286 editConfigureScene_SettingsAction->setText( tr( "Scene Settings" ) );
00287 editConfigureScene_SettingsAction->setMenuText( tr( "Scene Settings" ) );
00288 editConfigureTrainAction->setText( tr( "Train" ) );
00289 editConfigureTrainAction->setMenuText( tr( "Train" ) );
00290 editConfigureTestAction->setText( tr( "Test" ) );
00291 editConfigureTestAction->setMenuText( tr( "Test" ) );
00292 fileOpen_WorkspaceAction->setText( tr( "Open &Workspace" ) );
00293 fileOpen_WorkspaceAction->setMenuText( tr( "Open &Workspace" ) );
00294 if (MenuBar->findItem(1))
00295 MenuBar->findItem(1)->setText( tr( "&File" ) );
00296 Edit->changeItem( Edit->idAt( 0 ), tr( "&Configure" ) );
00297 Edit->changeItem( Edit->idAt( 3 ), tr( "&Bayes Network" ) );
00298 if (MenuBar->findItem(2))
00299 MenuBar->findItem(2)->setText( tr( "&Edit" ) );
00300 if (MenuBar->findItem(3))
00301 MenuBar->findItem(3)->setText( tr( "&View" ) );
00302 }
00303