27 #include "../../../dataaccess/dataset/DataSet.h"
28 #include "../../../dataaccess/utils/Utils.h"
29 #include "../../../raster/Interpolator.h"
30 #include "../../../raster/Raster.h"
32 #include "ui_FusionWizardPageForm.h"
35 #include <QApplication>
36 #include <QGridLayout>
37 #include <QMessageBox>
45 : QWizardPage(parent),
46 m_ui(new Ui::FusionWizardPageForm),
56 this->setTitle(tr(
"Fusion"));
57 this->setSubTitle(tr(
"Select the type of fusion and set their specific parameters."));
74 m_ui->m_ihsLowerLineEdit->setText(m_layerLower->getTitle().c_str());
75 m_ui->m_pcaLowerLineEdit->setText(m_layerLower->getTitle().c_str());
82 m_layerHigher = layer;
84 m_ui->m_higherLineEdit->setText(m_layerHigher->getTitle().c_str());
91 int idx = m_ui->m_fusionTypeComboBox->currentIndex();
93 int type = m_ui->m_fusionTypeComboBox->itemData(idx).toInt();
95 if(type == FUSION_IHS)
103 int idx = m_ui->m_fusionTypeComboBox->currentIndex();
105 int type = m_ui->m_fusionTypeComboBox->itemData(idx).toInt();
107 if(type == FUSION_PCA)
115 return m_ui->m_cropCheckBox->isChecked();
120 int interpolationIdx = m_ui->m_interpolatorComboBox->currentIndex();
134 return algoInputParams;
141 return algoOutputParams;
146 int interpolationIdx = m_ui->m_interpolatorComboBox->currentIndex();
154 int nBands = m_ui->m_listWidget->count();
155 for(
int i = 0; i < nBands; ++i)
157 if(m_ui->m_listWidget->item(i)->isSelected())
163 return algoInputParams;
170 return algoOutputParams;
175 m_ui->m_fusionTypeComboBox->clear();
177 m_ui->m_fusionTypeComboBox->addItem(tr(
"IHS"), FUSION_IHS);
178 m_ui->m_fusionTypeComboBox->addItem(tr(
"PCA"), FUSION_PCA);
180 m_ui->m_interpolatorComboBox->clear();
189 m_ui->m_ihsRComboBox->clear();
190 m_ui->m_ihsGComboBox->clear();
191 m_ui->m_ihsBComboBox->clear();
192 m_ui->m_listWidget->clear();
194 assert(m_layerLower.get());
197 std::auto_ptr<te::da::DataSet> ds = m_layerLower->getData();
203 std::auto_ptr<te::rst::Raster> inputRst = ds->getRaster(rpos);
207 for(
unsigned int i = 0; i < inputRst->getNumberOfBands(); ++i)
209 m_ui->m_ihsRComboBox->addItem(QString::number(i));
210 m_ui->m_ihsGComboBox->addItem(QString::number(i));
211 m_ui->m_ihsBComboBox->addItem(QString::number(i));
212 m_ui->m_listWidget->addItem(QString::number(i));
220 m_ui->m_bandComboBox->clear();
222 assert(m_layerHigher.get());
225 std::auto_ptr<te::da::DataSet> ds = m_layerHigher->getData();
231 std::auto_ptr<te::rst::Raster> inputRst = ds->getRaster(rpos);
235 for(
unsigned int i = 0; i < inputRst->getNumberOfBands(); ++i)
237 m_ui->m_bandComboBox->addItem(QString::number(i));
te::rp::IHSFusion::InputParameters getInputIHSParams()
FusionWizardPage(QWidget *parent=0)
IHSFusion output parameters.
PCAFusion output parameters.
te::rp::PCAFusion::OutputParameters getOutputPCAParams()
void setLower(te::map::AbstractLayerPtr layer)
This method is used to set the selected layer for classifier operation.
Q_DECLARE_METATYPE(te::map::AbstractLayerPtr)
Bicubic interpolation method.
This file defines a class for a Fusion Wizard page.
std::auto_ptr< Ui::FusionWizardPageForm > m_ui
te::rp::IHSFusion::OutputParameters getOutputIHSParams()
Method
Allowed interpolation methods.
void setHigher(te::map::AbstractLayerPtr layer)
This method is used to set the selected layer for classifier operation.
Bilinear interpolation method.
TEDATAACCESSEXPORT std::size_t GetFirstPropertyPos(const te::da::DataSet *dataset, int datatype)
Near neighborhood interpolation method.
boost::intrusive_ptr< AbstractLayer > AbstractLayerPtr
te::rp::PCAFusion::InputParameters getInputPCAParams()