27 #include "../../../common/progress/ProgressManager.h" 
   28 #include "../../../dataaccess/dataset/DataSet.h" 
   29 #include "../../../dataaccess/dataset/DataSetType.h" 
   30 #include "../../../dataaccess/utils/Utils.h" 
   31 #include "../../../rp/Filter.h" 
   32 #include "../../../rp/Module.h" 
   33 #include "../canvas/MapDisplay.h" 
   34 #include "../progress/ProgressViewerDialog.h" 
   39 #include "ui_FilterWizardPageForm.h" 
   42 #include <QApplication> 
   43 #include <QGridLayout> 
   44 #include <QMessageBox> 
   47 #include <boost/lexical_cast.hpp> 
   50   : QWizardPage(parent),
 
   51     m_ui(new Ui::FilterWizardPageForm)
 
   57   this->setTitle(tr(
"Filter"));
 
   58   this->setSubTitle(tr(
"Select the type of filter and set their specific parameters."));
 
   60   m_ui->m_maskToolButton->setIcon(QIcon::fromTheme(
"mask"));
 
   61   m_ui->m_loadMaskToolButton->setIcon(QIcon::fromTheme(
"mask-fill"));
 
   62   m_ui->m_maskDefaultValueLineEdit->setValidator(
new QIntValidator(
this));
 
   65   QGridLayout* displayLayout = 
new QGridLayout(
m_ui->m_previewWidget);
 
   70   displayLayout->setContentsMargins(0,0,0,0);
 
   94   m_navigator->set(m_layer, 
true);
 
   96   m_navigator->getDisplay()->refresh();
 
  103   int idx = m_ui->m_typeComboBox->currentIndex();
 
  112     algoInputParams.
m_windowH = m_window.size1();
 
  113     algoInputParams.
m_windowW = m_window.size2();
 
  114     algoInputParams.
m_window = m_window;
 
  117   int nBands = m_ui->m_listWidget->count();
 
  118   for(
int i = 0; i < nBands; ++i)
 
  120     if(m_ui->m_listWidget->item(i)->isSelected())
 
  124   return algoInputParams;
 
  131   return algoOutputParams;
 
  136   int filterType = m_ui->m_typeComboBox->itemData(index).toInt();
 
  140   m_ui->m_maskSizeSpinBox->setEnabled(flag);
 
  141   m_ui->m_maskToolButton->setEnabled(flag);
 
  142   m_ui->m_maskDefaultValueLineEdit->setEnabled(flag);
 
  150     m_ui->m_maskDefaultValueLineEdit->text().isEmpty() ? 0 : m_ui->m_maskDefaultValueLineEdit->text().toInt());
 
  152   if(dlg.exec() == QDialog::Accepted)
 
  156     m_ui->m_loadMaskToolButton->setEnabled(
true);
 
  166   m_ui->m_maskSizeSpinBox->setValue(m_window.size1());
 
  168   if(dlg.exec() == QDialog::Accepted)
 
  176   QApplication::setOverrideCursor(Qt::WaitCursor);
 
  188   std::map<std::string, std::string> rinfo;
 
  189   rinfo[
"MEM_RASTER_NROWS"] = boost::lexical_cast<std::string>(inputRst->
getNumberOfRows());
 
  190   rinfo[
"MEM_RASTER_NCOLS"] = boost::lexical_cast<std::string>(inputRst->
getNumberOfColumns());
 
  191   rinfo[
"MEM_RASTER_DATATYPE"] = boost::lexical_cast<std::string>(inputRst->
getBandDataType(0));
 
  192   rinfo[
"MEM_RASTER_NBANDS"] = boost::lexical_cast<std::string>(inputRst->
getNumberOfBands());
 
  194   algoOutputParams.
m_rType = 
"MEM";
 
  195   algoOutputParams.
m_rInfo = rinfo;
 
  202     if(algorithmInstance.
initialize(algoInputParams))
 
  204       if(algorithmInstance.
execute(algoOutputParams))
 
  208         m_navigator->drawRaster(rst.get());
 
  214     QMessageBox::warning(
this, tr(
"Warning"), tr(
"Filter error."));
 
  217   QApplication::restoreOverrideCursor();
 
  225   m_ui->m_listWidget->clear();
 
  228   std::auto_ptr<te::da::DataSet> ds = m_layer->getData();
 
  234     std::auto_ptr<te::rst::Raster> inputRst = ds->getRaster(rpos);
 
  238       for(
unsigned int i = 0; i < inputRst->getNumberOfBands(); ++i)
 
  240         m_ui->m_listWidget->addItem(QString::number(i));
 
  248   m_ui->m_typeComboBox->clear();
 
  259   onFilterTypeComboBoxActivated(0);
 
Utility functions for the data access module. 
 
FilterWizardPage(QWidget *parent=0)
 
void onMaskToolButtonClicked()
 
unsigned int getNumberOfColumns() const 
Returns the raster number of columns. 
 
std::string m_rType
Output raster data source type (as described in te::raster::RasterFactory ). 
 
std::auto_ptr< Ui::FilterWizardPageForm > m_ui
 
std::map< std::string, std::string > m_rInfo
The necessary information to create the raster (as described in te::raster::RasterFactory). 
 
An abstract class for raster data strucutures. 
 
void onFilterTypeComboBoxActivated(int index)
 
unsigned int getNumberOfRows() const 
Returns the raster number of rows. 
 
virtual std::size_t getNumberOfBands() const =0
Returns the number of bands (dimension of cells attribute values) in the raster. 
 
te::rp::Filter::OutputParameters getOutputParams()
 
This file defines a class for a MaskDialog. 
 
A series of well-known filtering algorithms for images, linear and non-linear.. 
 
void onLoadMaskToolButtonClicked()
 
bool initialize(const AlgorithmInputParameters &inputParams)
Initialize the algorithm instance making it ready for execution. 
 
std::auto_ptr< RasterNavigatorWidget > m_navigator
 
te::rp::Filter::InputParameters getInputParams()
 
std::auto_ptr< te::rst::Raster > m_outputRasterPtr
A pointer the ge generated output raster (label image). 
 
void set(te::map::AbstractLayerPtr layer)
This method is used to set the selected layer for mixture model operation. 
 
TEDATAACCESSEXPORT std::size_t GetFirstPropertyPos(const te::da::DataSet *dataset, int datatype)
 
Filter output parameters. 
 
boost::intrusive_ptr< AbstractLayer > AbstractLayerPtr
 
virtual int getBandDataType(std::size_t i) const =0
Returns the data type in a particular band (or dimension). 
 
bool execute(AlgorithmOutputParameters &outputParams)
Executes the algorithm using the supplied parameters. 
 
This file has the FilterWizardPage class.