statisticsContourBtn->SetEventHandler( this );
Connect( statisticsContourBtn->GetId(), wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction) &interfInformationPanel::onExtractInformation );
+ wxButton *showResultImagesBtn = new wxButton(this,-1,_T("Show result images"),wxDefaultPosition, wxSize(140,35) );
+ showResultImagesBtn->SetEventHandler( this );
+ Connect( showResultImagesBtn->GetId(), wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction) &interfInformationPanel::onShowResultImages );
+
+
wxButton *saveResultsBtn = new wxButton(this,-1,_T("Save Results"),wxDefaultPosition, wxSize(140,35) );
saveResultsBtn->SetEventHandler( this );
Connect( saveResultsBtn->GetId(), wxEVT_COMMAND_BUTTON_CLICKED , (wxObjectEventFunction) &interfInformationPanel::onSaveResults );
-
-
+
+
int sizeZ = interfMainPanel::getInstance()->GetImageDataSizeZ();
//_theViewPanel->getSceneManager()->GetImageDataSizeZ();
_mbarrangeSliceInformation = new mBarRange(this,65,65);
wxFlexGridSizer * sizerB = new wxFlexGridSizer(10);
sizerB->Add( informationContourLabelsBtn, 1, wxALL ,2 );
sizerB->Add( statisticsContourBtn, 1, wxALL ,2 );
+ sizerB->Add( showResultImagesBtn, 1, wxALL ,2 );
sizerB->Add( saveResultsBtn, 1, wxALL ,2 );
wxFlexGridSizer * sizer = new wxFlexGridSizer(1,8);
wxBusyCursor wait;
FillGridWithContoursInformation();
}
+
+
+void interfInformationPanel::onShowResultImages(wxCommandEvent& event)
+{
+ onExtractInformation( event );
+ int typeContourGroup = _radiolstboxContourGroup->GetSelection();
+ interfMainPanel::getInstance()->ShowResultImages( typeContourGroup );
+}
+
+
void interfInformationPanel::onExtractInformation(wxCommandEvent& event){
wxBusyCursor wait;
_grid->ClearGrid();
int minZ = _mbarrangeSliceInformation->GetStart();
int maxZ = _mbarrangeSliceInformation->GetEnd();
- interfMainPanel::getInstance()->onInformationContourLabels(typeContourGroup, selection, minZ, maxZ);
-
-
+ interfMainPanel::getInstance()->onInformationContourLabels(typeContourGroup, selection, minZ, maxZ);
}
+
void interfInformationPanel::onSaveResults(wxCommandEvent& event)
{
wxFileDialog dialog(this, _T("Choose a filename"), _T(""), _T(""), wxFileSelectorDefaultWildcardStr, wxSAVE );
// m_notebook_style =wxAUI_NB_TAB_SPLIT | wxAUI_NB_TAB_EXTERNAL_MOVE | wxNO_BORDER;
// m_notebook_theme = 0;
//wxContour_ActionCommandsID a;
-
+
+ _contourextractdata = NULL;
}
wxContourMainFrame :: wxContourMainFrame(wxWindow* parent, wxWindowID id,const wxString& title,const wxPoint& pos,const wxSize& size,std::vector<vtkImageData*> images, long style,std::string datadir)
{
this->setVectImages(images);
}
-
+
+ _contourextractdata = NULL;
}
void wxContourMainFrame::setVectImages(std::vector<vtkImageData*> imgs)
wxContourMainFrame :: ~wxContourMainFrame()
{
+ delete _contourextractdata;
deleteAllContours();
_pannew->Close();
interfMainPanel::resetInstance();
_instantPanel->setConceptValue(name, value);
}
+
ConceptDataWrap* wxContourMainFrame::getLastConceptData(){
return _instantPanel->getLastConceptData();
}
+
+
bool wxContourMainFrame::getIfConceptCheckedAt( std::string name, int pos ){
return _instantPanel->getIfConceptCheckedAt( name, pos );
}
+
+
+void wxContourMainFrame::ShowResultImages(int typeContourGroup)
+{
+ vtkImageData * mask;
+ vtkImageData * value;
+ this->getMaskValue(&mask, &value, typeContourGroup);
+
+ std::vector<int> nTypeView;
+ nTypeView.push_back(5);
+ nTypeView.push_back(1);
+ nTypeView.push_back(2);
+ nTypeView.push_back(0);
+
+ wxFrame *frame = new wxFrame(this, -1,_T("Result image extracted.."),wxDefaultPosition,wxSize(600,600), wxDEFAULT_FRAME_STYLE|wxSTAY_ON_TOP);
+ wxAuiManager *m_mgr_noteBookViewerResult = new wxAuiManager();
+ m_mgr_noteBookViewerResult->SetManagedWindow(frame);
+
+ wxAuiNotebook* noteBookViewerResult = new wxAuiNotebook(frame, -1, wxPoint(600, 600), wxSize(430,200), m_notebook_style);
+ m_mgr_noteBookViewerResult->AddPane(noteBookViewerResult, wxAuiPaneInfo().Name(wxT("notebook_content")).CenterPane().PaneBorder(false));
+
+ wxPanel *panelViewer1 = new wxMaracas_N_ViewersWidget(noteBookViewerResult, value,&nTypeView);
+ wxPanel *panelViewer2 = new wxMaracas_N_ViewersWidget(noteBookViewerResult, mask,&nTypeView);
+
+
+ noteBookViewerResult->AddPage( panelViewer1, wxT("Image result") );
+ noteBookViewerResult->AddPage( panelViewer2, wxT("Mask result") );
+ m_mgr_noteBookViewerResult->Update();
+ frame->Show();
+}
+
+
+
+
void wxContourMainFrame::changeInstant()
{
std::vector<int> instantVect;
}
+
void wxContourMainFrame :: updateInstantOutlines()
{
_theViewPanel->removeSceneContours();
return kernelManager->getOutlinesNameAtInstant(tempVector);
}
+
+void wxContourMainFrame::GenerateContourExtractData()
+{
+ if (_contourextractdata==NULL) { _contourextractdata = new ContourExtractData(true); }
+}
+
+
void wxContourMainFrame::onInformationContourLabels(int typeContourGroup,int selection,int minimumZ,int maximumZ)
{
+ GenerateContourExtractData();
+
int maxContourGroup = 0;
- ContourExtractData *contourextractdata = new ContourExtractData();
- contourextractdata ->SetTypeOperation( typeContourGroup % 3 );
+ _contourextractdata ->SetTypeOperation( typeContourGroup % 3 );
std::vector<manualContourModel*> lstManConMod;
std::vector<manualContourModel*> lstManConModTmp;
totalZ = maxZ-minZ+1;
- contourextractdata->SetImage( imagedata);
+ _contourextractdata->SetImage( imagedata);
// For each slice..
for ( z=minZ ; z<=maxZ ; z++ )
//_staticTextInformation->SetLabel(tmpString);
//Extraction data from contours of each slice
- contourextractdata->SetZtoBeAnalys(z);
+ _contourextractdata->SetZtoBeAnalys(z);
tempVector[1]=z;
Instant instant(&tempVector);
lstManConModTmp = lstManConModExp;
}
- contourextractdata->SetLstManualContourModel( lstManConModTmp );
+ _contourextractdata->SetLstManualContourModel( lstManConModTmp );
pLstValue.clear();
pLstValuePosX.clear();
pLstValuePosY.clear();
pLstValuePosZ.clear();
- contourextractdata->GetValuesInsideCrown( &pLstValue,
+ _contourextractdata->GetValuesInsideCrown( &pLstValue,
&pLstValuePosX,
&pLstValuePosY,
&pLstValuePosZ);
// Statistics of each slice.
- contourextractdata->Statistics( &pLstValue,
+ _contourextractdata->Statistics( &pLstValue,
minimumZ,
maximumZ,
&resultGrayRangeCount,
}
interfMainPanel::getInstance()->setStringInfoPanel( _T("") );
- delete contourextractdata;
}
//AD: 29-05-09
void wxContourMainFrame::SaveValuesXYZ(std::string directory,std::string namefile,int typeContourGroup)
{
wxBusyCursor wait;
- ContourExtractData *contourextractdata = new ContourExtractData();
+ GenerateContourExtractData();
+
//int typeContourGroup = this->_radiolstboxContourGroup->GetSelection();
- contourextractdata ->SetTypeOperation( typeContourGroup % 3 );
+ _contourextractdata ->SetTypeOperation( typeContourGroup % 3 );
std::vector<manualContourModel*> lstManConMod;
std::vector<manualContourModel*> lstManConModTmp;
maxZ = sizeZ;//_mbarrange->GetEnd();
totalZ = maxZ-minZ+1;
- contourextractdata->SetImage( imagedata);
+ _contourextractdata->SetImage( imagedata);
// For each slice..
for ( z=0 ; z<sizeZ ; z++)
//Extraction data from contours of each slice
- contourextractdata->SetZtoBeAnalys( z);
+ _contourextractdata->SetZtoBeAnalys( z);
tempVector[1]=z;
Instant instant(&tempVector);
lstManConModTmp = lstManConModExp;
}
- contourextractdata->SetLstManualContourModel( lstManConModTmp );
+ _contourextractdata->SetLstManualContourModel( lstManConModTmp );
pLstValue.clear();
pLstValuePosX.clear();
pLstValuePosY.clear();
pLstValuePosZ.clear();
- contourextractdata->GetValuesInsideCrown( &pLstValue,
+ _contourextractdata->GetValuesInsideCrown( &pLstValue,
&pLstValuePosX,
&pLstValuePosY,
&pLstValuePosZ);
} // for z
interfMainPanel::getInstance()->setStringInfoPanel(_T(""));
//_staticTextInformation->SetLabel( _T("") );
- delete contourextractdata;
+
}
void wxContourMainFrame::getMaskValue(vtkImageData ** mask,vtkImageData ** value,int typeContourGroup){
wxBusyCursor wait;
- ContourExtractData *contourextractdata = new ContourExtractData( true );
+ GenerateContourExtractData();
+
//int typeContourGroup = this->_radiolstboxContourGroup->GetSelection();
if (typeContourGroup==3)
{
typeContourGroup=1;
}
- contourextractdata ->SetTypeOperation( typeContourGroup % 3 );
+ _contourextractdata ->SetTypeOperation( typeContourGroup % 3 );
std::vector<manualContourModel*> lstManConMod;
std::vector<manualContourModel*> lstManConModTmp;
maxZ = sizeZ;//_mbarrange->GetEnd();
totalZ = maxZ-minZ+1;
- contourextractdata->SetImage( imagedata);
+ _contourextractdata->SetImage( imagedata);
// For each slice..
for ( z=0 ; z<sizeZ ; z++)
interfMainPanel::getInstance()->setStringInfoPanel(tmpString);
//Extraction data from contours of each slice
- contourextractdata->SetZtoBeAnalys( z);
+ _contourextractdata->SetZtoBeAnalys( z);
tempVector[1]=z;
Instant instant(&tempVector);
lstManConModTmp = lstManConModExp;
}
- contourextractdata->SetLstManualContourModel( lstManConModTmp );
- contourextractdata->CalculateImageResult(); // with actual Z
+ _contourextractdata->SetLstManualContourModel( lstManConModTmp );
+ _contourextractdata->CalculateImageResult(); // with actual Z
} // for iContourGroup
} // for z
- (*value) = contourextractdata->GetVtkImageValueResult();
- (*mask) = contourextractdata->GetVtkImageMaskResult();
- delete contourextractdata;
+ (*value) = _contourextractdata->GetVtkImageValueResult();
+ (*mask) = _contourextractdata->GetVtkImageMaskResult();
+
}
void wxContourMainFrame::SaveImageResult(std::string directory,std::string namefile, vtkImageData* mask,vtkImageData* value)