Fusion of a low-resolution multi-band image with a high resolution image using the PCA (Principal components analysis) method. More...
#include <PCAFusion.h>
Classes | |
| class | InputParameters |
| PCAFusion input parameters. More... | |
| class | OutputParameters |
| PCAFusion output parameters. More... | |
Public Member Functions | |
| bool | execute (AlgorithmOutputParameters &outputParams) throw ( te::rp::Exception ) |
| Executes the algorithm using the supplied parameters. More... | |
| const std::string & | getErrorMessage () const |
| Return the current error message if there is any. More... | |
| bool | initialize (const AlgorithmInputParameters &inputParams) throw ( te::rp::Exception ) |
| Initialize the algorithm instance making it ready for execution. More... | |
| bool | isInitialized () const |
| Returns true if the algorithm instance is initialized and ready for execution. More... | |
| PCAFusion () | |
| void | reset () throw ( te::rp::Exception ) |
| Clear all internal allocated objects and reset the algorithm to its initial state. More... | |
| ~PCAFusion () | |
Protected Member Functions | |
| bool | loadRessampledRaster (std::unique_ptr< te::rst::Raster > &ressampledRasterPtr) const |
| Load resampled data from the input image. More... | |
| void | setErrorMessage (const std::string &newErrorMessage) |
| Set the current error message. More... | |
| bool | swapBandByHighResRaster (te::rst::Raster &pcaRaster, const unsigned int pcaRasterBandIdx) |
| Swap the band values by the normalized high resolution raster data. More... | |
Protected Attributes | |
| InputParameters | m_inputParameters |
| Input execution parameters. More... | |
| bool | m_isInitialized |
| Tells if this instance is initialized. More... | |
Fusion of a low-resolution multi-band image with a high resolution image using the PCA (Principal components analysis) method.
The PCA performs image fusion where the first principal component of the multi-spectral image is replaced by the histogram matched panchromatic imagery.
Definition at line 50 of file PCAFusion.h.
| te::rp::PCAFusion::PCAFusion | ( | ) |
Definition at line 132 of file PCAFusion.cpp.
References te::rp::PCAFusion::InputParameters::reset(), and ~PCAFusion().
|
default |
Referenced by PCAFusion().
|
virtual | ||||||||||||||
Executes the algorithm using the supplied parameters.
| outputParams | Output parameters. |
Implements te::rp::Algorithm.
Definition at line 139 of file PCAFusion.cpp.
References te::rp::DirectPrincipalComponents(), te::dt::DOUBLE_TYPE, te::rst::Raster::getGrid(), te::sa::Grid, te::rp::InversePrincipalComponents(), loadRessampledRaster(), te::rp::PCAFusion::InputParameters::m_enableProgress, te::rp::PCAFusion::InputParameters::m_enableThreadedProcessing, te::rp::PCAFusion::InputParameters::m_highResRasterPtr, m_inputParameters, m_isInitialized, te::rp::PCAFusion::OutputParameters::m_outputRasterPtr, te::rp::PCAFusion::OutputParameters::m_rInfo, te::rp::PCAFusion::OutputParameters::m_rType, te::rst::RasterFactory::make(), swapBandByHighResRaster(), TERP_INSTANCE_LOG_AND_RETURN_FALSE, TERP_INSTANCE_TRUE_OR_RETURN_FALSE, TERP_TRUE_OR_THROW, and te::common::Exception::what().
Referenced by BOOST_AUTO_TEST_CASE(), and te::qt::widgets::FusionWizard::executePCA().
|
inherited |
Return the current error message if there is any.
Definition at line 44 of file rp/Algorithm.cpp.
References te::rp::Algorithm::m_errorMessage.
Referenced by te::qt::widgets::FilterDialogForm::applyPreview(), te::qt::widgets::PostClassificationWidget::execute(), te::qt::widgets::ClassifierWizard::execute(), te::qt::widgets::MixtureModelWizard::execute(), te::qt::widgets::ContrastDialogForm::execute(), te::qt::widgets::FilterDialogForm::execute(), te::qt::widgets::ArithmeticOpDialogForm::execute(), te::qt::widgets::MosaicWizard::executeGeoMosaic(), te::qt::widgets::FusionWizard::executeIHS(), te::qt::widgets::FusionWizard::executePCA(), te::qt::widgets::MosaicWizard::executeSequenceMosaic(), te::qt::widgets::MosaicWizard::executeTiePointMosaic(), and te::qt::widgets::FusionWizard::executeWisper().
|
virtual | ||||||||||||||
Initialize the algorithm instance making it ready for execution.
| inputParams | Input parameters. |
Implements te::rp::Algorithm.
Definition at line 288 of file PCAFusion.cpp.
References te::rst::Raster::getAccessPolicy(), te::rst::Raster::getNumberOfBands(), te::rp::PCAFusion::InputParameters::m_highResRasterBand, te::rp::PCAFusion::InputParameters::m_highResRasterPtr, m_inputParameters, m_isInitialized, te::rp::PCAFusion::InputParameters::m_lowResRasterBands, te::rp::PCAFusion::InputParameters::m_lowResRasterPtr, te::common::RAccess, te::rp::PCAFusion::InputParameters::reset(), TERP_INSTANCE_TRUE_OR_RETURN_FALSE, and TERP_TRUE_OR_THROW.
Referenced by BOOST_AUTO_TEST_CASE(), and te::qt::widgets::FusionWizard::executePCA().
|
virtual |
Returns true if the algorithm instance is initialized and ready for execution.
Implements te::rp::Algorithm.
Definition at line 336 of file PCAFusion.cpp.
References m_isInitialized.
|
protected |
Load resampled data from the input image.
| ressampledRasterPtr | The loaded and ressampled raster data. |
Definition at line 341 of file PCAFusion.cpp.
References te::rst::Raster::getBand(), te::rst::Grid::getExtent(), te::rst::Raster::getGrid(), te::rst::Raster::getNumberOfColumns(), te::rst::Raster::getNumberOfRows(), te::rst::Band::getProperty(), te::rst::Raster::getSRID(), te::rst::Interpolator::getValue(), te::sa::Grid, te::rp::PCAFusion::InputParameters::m_highResRasterPtr, m_inputParameters, te::rp::PCAFusion::InputParameters::m_interpMethod, te::rp::PCAFusion::InputParameters::m_lowResRasterBands, te::rp::PCAFusion::InputParameters::m_lowResRasterPtr, te::rst::BandProperty::m_noDataValue, te::rst::Raster::setValue(), TERP_LOG_AND_RETURN_FALSE, and te::common::Exception::what().
Referenced by execute().
|
virtual | |||||||||||||
Clear all internal allocated objects and reset the algorithm to its initial state.
Reimplemented from te::rp::Algorithm.
Definition at line 280 of file PCAFusion.cpp.
References m_inputParameters, m_isInitialized, te::rp::Algorithm::reset(), and te::rp::PCAFusion::InputParameters::reset().
|
protectedinherited |
Set the current error message.
| newErrorMessage | New error message; |
Definition at line 49 of file rp/Algorithm.cpp.
References te::rp::Algorithm::m_errorMessage.
|
protected |
Swap the band values by the normalized high resolution raster data.
| pcaRaster | The PCA raster. |
| pcaRasterBandIdx | The band index where the values will be swapped. |
Definition at line 428 of file PCAFusion.cpp.
References col, te::rst::Raster::getBand(), te::rp::GetDataTypeRange(), te::rp::GetMeanValue(), te::rst::Raster::getNumberOfBands(), te::rst::Raster::getNumberOfColumns(), te::rst::Raster::getNumberOfRows(), te::rst::Band::getProperty(), te::rp::GetStdDevValue(), te::rst::Band::getValue(), te::rp::PCAFusion::InputParameters::m_enableThreadedProcessing, te::rp::PCAFusion::InputParameters::m_highResRasterBand, te::rp::PCAFusion::InputParameters::m_highResRasterPtr, m_inputParameters, te::rst::BandProperty::m_noDataValue, and nCols.
Referenced by execute().
|
protected |
Input execution parameters.
Definition at line 140 of file PCAFusion.h.
Referenced by execute(), initialize(), loadRessampledRaster(), reset(), and swapBandByHighResRaster().
|
protected |
Tells if this instance is initialized.
Definition at line 142 of file PCAFusion.h.
Referenced by execute(), initialize(), isInitialized(), and reset().