Loading...
Searching...
No Matches
RasterStatisticsWizardPage.h
Go to the documentation of this file.
1/* Copyright (C) 2008 National Institute For Space Research (INPE) - Brazil.
2
3 This file is part of the TerraLib - a Framework for building GIS enabled applications.
4
5 TerraLib is free software: you can redistribute it and/or modify
6 it under the terms of the GNU Lesser General Public License as published by
7 the Free Software Foundation, either version 3 of the License,
8 or (at your option) any later version.
9
10 TerraLib is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU Lesser General Public License for more details.
14
15 You should have received a copy of the GNU Lesser General Public License
16 along with TerraLib. See COPYING. If not, write to
17 TerraLib Team at <terralib-team@terralib.org>.
18 */
19
20
21#ifndef TE_QT_WIDGETS_RASTERSTATISTICSWIZARDPAGE_H
22#define TE_QT_WIDGETS_RASTERSTATISTICSWIZARDPAGE_H
23
24//Terralib
25#ifndef Q_MOC_RUN
26#include "../../../dataaccess/datasource/DataSourceInfo.h"
27#include "../../../maptools/AbstractLayer.h"
28#endif
29#include "../Config.h"
30#include "../classification/ROIManagerDialog.h"
31#include "../../../rp/Matrix.h"
33
34//Qt
35#include <QWizardPage>
36#include <QActionGroup>
37
38//STL
39#include <memory>
40
41//Forward declarations
42namespace Ui
43{
44 class RasterStatisticsWizardPageForm;
45}
46
47namespace te
48{
49 namespace rst { class Raster; }
50
51 namespace qt
52 {
53 namespace widgets
54 {
55
57 {
58 Q_OBJECT
59
60 public:
61
62 RasterStatisticsWizardPage(QWidget* parent=0);
63
65
66 bool isComplete() const;
67
68 /*!
69 \brief This method is used to set the selected layer for vectorization operation
70
71 \param layer The layer ptr
72
73 \note This layer MUST HAVE a valid raster object.
74 */
76
78
79 void setActionGroup(QActionGroup* actionGroup);
80
81 protected:
82
83 std::unique_ptr<Ui::RasterStatisticsWizardPageForm> m_uiStatPageForm;
84 std::unique_ptr<te::qt::widgets::ROIManagerDialog> m_roiManagerPtr;
85 std::unique_ptr<te::qt::widgets::RasterStatisticsWizardLog> m_logDialogPtr;
87
88 /*!
89 \brief Return the current selected band indexes.
90 \param bandsIndexes Current selected band indexes.
91 */
92 void getBandIndexes( std::vector< unsigned int >& bandsIndexes ) const;
93
94 /*!
95 \brief Return the current histograms.
96 \param realHistograms Real histograms.
97 \param imagHistograms Real histograms.
98 \note Histograms map: map key.first=ROI Ids, map_key.second=band_index.
99 \note Histograms map: map key.first="ALL_IMAGE" for the case where no ROIs are avaliable.
100 \return true if ok, false on erros.
101 */
103 std::map< std::pair< std::string, unsigned int >, std::map<double,
104 unsigned int> >& realHistograms,
105 std::map< std::pair< std::string, unsigned int >, std::map<double,
106 unsigned int> >& imagHistograms ) const;
107
108 /*!
109 \brief Return the current joint histograms.
110 \param realHistograms Real histograms.
111 \param imagHistograms Real histograms.
112 \note Joint Histograms map key: std::tuple( 0 )=roi_id, std::tuple( 1 )=band_index_1, std::tuple( 2 )=band_index_2
113 \note Joint Histograms map key: std::tuple( 0 )="ALL_IMAGE" for the case where no ROIs are avaliable.
114 \return true if ok, false on erros.
115 */
117 const std::map< std::pair< std::string, unsigned int >, std::map<double,
118 unsigned int> >& realHistograms,
119 const std::map< std::pair< std::string, unsigned int >, std::map<double,
120 unsigned int> >& imagHistograms,
121 std::map< std::tuple< std::string, unsigned int, unsigned int >,
122 std::map< std::pair< double, double >, unsigned int> >& realJointHistograms,
123 std::map< std::tuple< std::string, unsigned int, unsigned int >,
124 std::map< std::pair< double, double >, unsigned int> >& imagJointHistograms ) const;
125
126 /*!
127 \brief Return the covariance value.
128 \param roiID Target ROI id.
129 \param bandIdx1 Target band 1 index.
130 \param bandIdx2 Target band 2 index.
131 \param jointHistograms Joint histograms.
132 \param histograms Single band histograms.
133 \param covariance Covariance value.
134 \return true if ok, false on erros.
135 */
136 static bool getCovariance(
137 const std::string& roiID,
138 const unsigned int& bandIdx1,
139 const unsigned int& bandIdx2,
140 const std::map< std::tuple< std::string, unsigned int, unsigned int >,
141 std::map< std::pair< double, double >, unsigned int> >& jointHistograms,
142 const std::map< std::pair< std::string, unsigned int >, std::map<double,
143 unsigned int> >& histograms,
144 double& covariance );
145
146 /*!
147 \brief Return the correlation value.
148 \param roiID Target ROI id.
149 \param bandIdx1 Target band 1 index.
150 \param bandIdx2 Target band 2 index.
151 \param jointHistograms Joint histograms.
152 \param histograms Single band histograms.
153 \param correlation Correlation value.
154 \return true if ok, false on erros.
155 */
156 static bool getCorrelation(
157 const std::string& roiID,
158 const unsigned int& bandIdx1,
159 const unsigned int& bandIdx2,
160 const std::map< std::tuple< std::string, unsigned int, unsigned int >,
161 std::map< std::pair< double, double >, unsigned int> >& jointHistograms,
162 const std::map< std::pair< std::string, unsigned int >, std::map<double,
163 unsigned int> >& histograms,
164 double& correlation );
165
166 /*!
167 \brief Return the Kurtosis value.
168 \param roiID Target ROI id.
169 \param bandIdx1 Target band 1 index.
170 \param jointHistograms Joint histograms.
171 \param histograms Single band histograms.
172 \param kurtosis Correlation value.
173 \return true if ok, false on erros.
174 */
175 static bool getKurtosis(
176 const std::string& roiID,
177 const unsigned int& bandIdx1,
178 const std::map< std::tuple< std::string, unsigned int, unsigned int >,
179 std::map< std::pair< double, double >, unsigned int> >& jointHistograms,
180 const std::map< std::pair< std::string, unsigned int >, std::map<double,
181 unsigned int> >& histograms,
182 double& kurtosis );
183
184 /*!
185 \brief Return the covariance matrix.
186 \param roiID Target ROI id.
187 \param jointHistograms Joint histograms.
188 \param histograms Single band histograms.
189 \param matrix Output matrix.
190 \return true if ok, false on erros.
191 */
193 const std::string& roiID,
194 const std::map< std::tuple< std::string, unsigned int, unsigned int >,
195 std::map< std::pair< double, double >, unsigned int> >& jointHistograms,
196 const std::map< std::pair< std::string, unsigned int >, std::map<double,
197 unsigned int> >& histograms,
198 te::rp::Matrix< double >& matrix );
199
200 /*!
201 \brief Return the correlation matrix.
202 \param roiID Target ROI id.
203 \param jointHistograms Joint histograms.
204 \param histograms Single band histograms.
205 \param matrix Output matrix.
206 \return true if ok, false on erros.
207 */
209 const std::string& roiID,
210 const std::map< std::tuple< std::string, unsigned int, unsigned int >,
211 std::map< std::pair< double, double >, unsigned int> >& jointHistograms,
212 const std::map< std::pair< std::string, unsigned int >, std::map<double,
213 unsigned int> >& histograms,
214 te::rp::Matrix< double >& matrix );
215
216 /*!
217 \brief Return the kurtosis matrix.
218 \param roiID Target ROI id.
219 \param jointHistograms Joint histograms.
220 \param histograms Single band histograms.
221 \param matrix Output matrix.
222 \return true if ok, false on erros.
223 */
225 const std::string& roiID,
226 const std::map< std::tuple< std::string, unsigned int, unsigned int >,
227 std::map< std::pair< double, double >, unsigned int> >& jointHistograms,
228 const std::map< std::pair< std::string, unsigned int >, std::map<double,
229 unsigned int> >& histograms,
230 te::rp::Matrix< double >& matrix );
231
233
234 /*!
235 \brief Return the current loaded ROIs IDs.
236 \return Return the current loaded ROIs IDs.
237 */
238 std::vector< std::string > getROIsIDs() const;
239
240 protected slots:
241
242 void histogramPushButtonClicked(bool checked);
243
244 void scatterPushButtonClicked(bool checked);
245
246 void statisticsPushButtonClicked(bool checked);
247
248 void samplesPushButtonClicked(bool checked);
249
251
253 };
254
255 } // namespace widgets
256 } // namespace qt
257} // namespace te
258
259#endif // TE_QT_WIDGETS_RASTERSTATISTICSWIZARDPAGE_H
A ROISet is a set of ROI's.
Definition ROISet.h:54
A widget to control the display of a set of layers.
Definition MapDisplay.h:72
bool printMatrix(te::rp::Matrix< double > &matrix)
bool getJoinHistograms(const std::map< std::pair< std::string, unsigned int >, std::map< double, unsigned int > > &realHistograms, const std::map< std::pair< std::string, unsigned int >, std::map< double, unsigned int > > &imagHistograms, std::map< std::tuple< std::string, unsigned int, unsigned int >, std::map< std::pair< double, double >, unsigned int > > &realJointHistograms, std::map< std::tuple< std::string, unsigned int, unsigned int >, std::map< std::pair< double, double >, unsigned int > > &imagJointHistograms) const
Return the current joint histograms.
std::unique_ptr< te::qt::widgets::ROIManagerDialog > m_roiManagerPtr
void getBandIndexes(std::vector< unsigned int > &bandsIndexes) const
Return the current selected band indexes.
bool getCovarianceMatrix(const std::string &roiID, const std::map< std::tuple< std::string, unsigned int, unsigned int >, std::map< std::pair< double, double >, unsigned int > > &jointHistograms, const std::map< std::pair< std::string, unsigned int >, std::map< double, unsigned int > > &histograms, te::rp::Matrix< double > &matrix)
Return the covariance matrix.
bool getKurtosisMatrix(const std::string &roiID, const std::map< std::tuple< std::string, unsigned int, unsigned int >, std::map< std::pair< double, double >, unsigned int > > &jointHistograms, const std::map< std::pair< std::string, unsigned int >, std::map< double, unsigned int > > &histograms, te::rp::Matrix< double > &matrix)
Return the kurtosis matrix.
static bool getKurtosis(const std::string &roiID, const unsigned int &bandIdx1, const std::map< std::tuple< std::string, unsigned int, unsigned int >, std::map< std::pair< double, double >, unsigned int > > &jointHistograms, const std::map< std::pair< std::string, unsigned int >, std::map< double, unsigned int > > &histograms, double &kurtosis)
Return the Kurtosis value.
void setLayer(te::map::AbstractLayerPtr layer)
This method is used to set the selected layer for vectorization operation.
std::unique_ptr< Ui::RasterStatisticsWizardPageForm > m_uiStatPageForm
void setActionGroup(QActionGroup *actionGroup)
void setMapDisplay(te::qt::widgets::MapDisplay *mapDisplay)
bool getHistograms(std::map< std::pair< std::string, unsigned int >, std::map< double, unsigned int > > &realHistograms, std::map< std::pair< std::string, unsigned int >, std::map< double, unsigned int > > &imagHistograms) const
Return the current histograms.
static bool getCovariance(const std::string &roiID, const unsigned int &bandIdx1, const unsigned int &bandIdx2, const std::map< std::tuple< std::string, unsigned int, unsigned int >, std::map< std::pair< double, double >, unsigned int > > &jointHistograms, const std::map< std::pair< std::string, unsigned int >, std::map< double, unsigned int > > &histograms, double &covariance)
Return the covariance value.
void onROIManagerClosed(te::cl::ROISet *rs)
std::unique_ptr< te::qt::widgets::RasterStatisticsWizardLog > m_logDialogPtr
bool getCorrelationMatrix(const std::string &roiID, const std::map< std::tuple< std::string, unsigned int, unsigned int >, std::map< std::pair< double, double >, unsigned int > > &jointHistograms, const std::map< std::pair< std::string, unsigned int >, std::map< double, unsigned int > > &histograms, te::rp::Matrix< double > &matrix)
Return the correlation matrix.
std::vector< std::string > getROIsIDs() const
Return the current loaded ROIs IDs.
static bool getCorrelation(const std::string &roiID, const unsigned int &bandIdx1, const unsigned int &bandIdx2, const std::map< std::tuple< std::string, unsigned int, unsigned int >, std::map< std::pair< double, double >, unsigned int > > &jointHistograms, const std::map< std::pair< std::string, unsigned int >, std::map< double, unsigned int > > &histograms, double &correlation)
Return the correlation value.
boost::intrusive_ptr< AbstractLayer > AbstractLayerPtr
TerraLib.
#define slots
#define TEQTWIDGETSEXPORT
You can use this macro in order to export/import classes and functions from this module.
Definition Config.h:63