Classes |
| class | CalcCCorrelationMtxParams |
| class | ExtractLocalMaximasParams |
| struct | GenerateCorrelationFeaturesParams |
| class | LoadImageParams |
| struct | MaximasListNodeT |
Public Types |
| enum | FeatMatchingMethod { NormCrossCorrMethod
} |
Public Member Functions |
| | TePDIMMIOMatching () |
| | ~TePDIMMIOMatching () |
| bool | CheckParameters (const TePDIParameters ¶meters) const |
| | Checks if the supplied parameters fits the requirements of each PDI algorithm implementation.
|
Protected Types |
typedef TePDIMatrix< unsigned
char > | MaskMatrixT |
typedef std::list
< MaximasListNodeT > | MaximasListT |
typedef std::pair< unsigned
int, unsigned int > | MaximasMapNodeT |
typedef std::multimap< double,
MaximasMapNodeT > | MaximasMapT |
Protected Member Functions |
| bool | RunImplementation () |
| | Runs the current algorithm implementation.
|
| void | ResetState (const TePDIParameters ¶ms) |
| | Reset the internal state to the initial state.
|
| void | moravecRepeatability (const MaximasListT &inputList, const MaximasListT &constraintList, unsigned int constraintImageWidth, unsigned int constraintImageHeight, double moravecRepeatabilityMinTolerance, double moravecReSampleFactor, MaximasListT &outputList) |
| | Applies a Moravec repeatability constraint over an image maximas list.
|
| bool | matchFeatures (FeatMatchingMethod matching_method, const TePDIMatrix< double > &img1featMtx, const MaximasListT &img1_maximas_list, const TePDIMatrix< double > &img2featMtx, const MaximasListT &img2_maximas_list, TeCoordPairVect &tiePointsVec, std::vector< double > &tiePointsWeights) |
| | Features matching and tie-points generation.
|
Static Protected Member Functions |
| static void | loadImage (void *paramsPtr) |
| | A job function load raster data into a simple matrix.
|
| static void | createImgMatrix (TeDataType dataType, TeSharedPtr< TePDIMtxDoubleAdptInt > &matrixPtr) |
| static void | extractLocalMaximas (void *paramsPtr) |
| | Extract local interest maxima points using a Modified Moravec Interest Operator aproach.
|
| static bool | extractLocalMaximas (TePDIMtxDoubleAdptInt const *imgMatrixPtr, MaskMatrixT const *maskMatrixPtr, const unsigned int &xStart, const unsigned int &yStart, const unsigned int &width, const unsigned int &height, TePDIMatrix< double > &bufferMatrix, const unsigned int &moravecWindowSize, const unsigned int &maximasNumber, MaximasListT &outMaximasList, TePDIPIManager &progress) |
| | Extract local interest maxima points from an sub-image sub-region using a Modified Moravec Interest Operator aproach.
|
| static void | generateCorrelationFeatures (void *paramsPtr) |
| | Generate correlation features.
|
| static void | calcCCorrelationMtx (void *paramsPtr) |
| | cross-correlation matrix calcule.
|
| static void | matrix2Tiff (const TePDIMtxDoubleAdptInt &input_matrix, const std::string &out_file_name, const MaximasListT &maxima_points=MaximasListT()) |
| | Save the output matrix to a geotiff file.
|
| static void | matrix2Tiff (const TePDIMtxDoubleAdptInt &input_matrix, const std::string &out_file_name, const TeCoordPairVect &tiepoints, bool usePt1) |
| | Save the output matrix to a geotiff file.
|
| static void | doublesMatrix2Tiff (const TePDIMatrix< double > &input_matrix, const std::string &out_file_name, const MaximasListT &maxima_points=MaximasListT()) |
| | Save the output matrix to a geotiff file.
|
| static void | features2Tiff (unsigned int corr_window_width, const MaximasListT &img_maxima_points, TePDIMatrix< double > &img_features_matrix, const std::string &filenameaddon) |
| | Save the generated features to tif files.
|
| static bool | bicubicResampleMatrix (const TePDIMtxDoubleAdptInt &inputMatrix, unsigned int outLines, unsigned int outCols, bool progressEnabled, TeMutex &globalMutex, double outMinValue, double outMaxValue, TePDIMtxDoubleAdptInt &outputMatrix) |
| | Input matrix bicubic resample.
|
| static bool | generateMaximasRaster (const TePDIMtxDoubleAdptInt &inputMatrix, const MaximasListT &maximaPoints, TeRaster &outRaster) |
| | Generate the output maximas image ( 3 RGB bands where the maximas points are marked with value R255G0B0).
|
Protected Attributes |
| const double | moravecDownSampleFactor_ |
| const double | moravecUpSampleFactor_ |
| const double | moravecRepeatabilityMinTolerance_ |
| TeThreadJobsManager | jobsMan_ |
| TeMutex | globalMutex_ |
Modified Moravec Interest Operator based image area matching.
- Author:
- Emiliano F. Castejon <castejon@dpi.inpe.br>.
- Note:
- The required parameters are:
- Parameters:
-
| input_image1_ptr | (TePDITypes::TePDIRasterPtrType) - The input image 1. |
| input_channel1 | ( unsigned int ) - Band to process from input_image1. |
| input_image2_ptr | (TePDITypes::TePDIRasterPtrType) - The input image 2. |
| input_channel2 | ( unsigned int ) - Band to process from input_image2. |
| out_tie_points_ptr | ( TeSharedPtr< TeCoordPairVect > ) - The output tie-points where TeCoordPair.pt1 are input_image1 matricial indexes and TeCoordPair.pt2 are input_image2 matricial indexes. |
- Note:
- The Optional parameters are:
- Parameters:
-
| matching_method | (TePDIMMIOMatching::FeatMatchingMethod) Features matching method (default: TePDIMMIOMatching::NormCrossCorrMethod). |
| pixel_x_relation | (double) - The pixel resolution relation pixel_x_relation = img1_pixel_res_x / img2_pixel_res_x (default=1.0). |
| pixel_y_relation | (double) - The pixel resolution relation pixel_y_relation = img1_pixel_res_y / img2_pixel_res_y (default=1.0). |
| gt_params | ( TeGTParams ) - The geometric transformation parameters to be used (if not supplied, the dafult TeGTParams will be used - affine transformation, max direct mapping error = 2 pixels, RANSACRemotion outliers remotion ). |
| out_gt_params_ptr | ( TeGTParams::pointer ) - The output parameters of internally generated geometric transformation (only valid when geometrical filtering is enabled). |
| input_box1 | ( TeBox ) - Box (image matrix coords) to process from input_image1 ( the entire image will be used if no box was supplied ). |
| input_box2 | ( TeBox ) - Box (image matrix coords) to process from input_image2 ( the entire image will be used if no box was supplied ). |
| enable_multi_thread | (int) - If present (any value) a multi-threaded processing will be used. (default: multi-thread disabled). |
| enable_threaded_raster_read | (int) - If present (any value) a multi-threaded input rasters data reading will be performed if enable_multi_thread is also enabled; Some TeDecoders do not support multi-thread so use it with caution (default: multi-threaded raster read disabled). |
| max_tie_points | (unsigned int) - The maximum number of generated tie-points (default=1000). |
| skip_geom_filter | (int) - If present (any value) will disable the geometric filtering ( default: geometric filtering enabled ). |
| enable_upsampled_filter | (int) - If present (any value) will enable the upsampled image Moravec repeatability filter ( default: upsampled filtering disabled - only the downsampled image filter will be applied ). |
| disable_reap_filter | (int) - If present (any value) will disable the image Moravec repeatability filters (upsample and downsample) ( default: filtering enabled - filter will be applied to avoid creation of tie-points over noisy areas). |
| corr_window_width | (unsigned int) - The correlation window width used to correlate points between images (Must be an odd number, minimum 13, default: 21). |
| moravec_window_width | (unsigned int) - The Moravec window width used to locate canditate tie-points (Must be an odd number, minimum 11, default: 11 ). |
| out_tie_points_weights_ptr | ( TeSharedPtr< std::vector< double > > ) - The output tie- points weights vector (normalized between 0 and 1). |
| mask_image1_ptr | (TePDITypes::TePDIRasterPtrType) - Mask image 1 pointer (tie-points falling inside mask image areas marked with zeroes will not be generated; this image must have the same number of lines/columns as input_image1). |
| mask_image2_ptr | (TePDITypes::TePDIRasterPtrType) - Mask image 2 pointer (tie-points falling inside mask image areas marked with zeroes will not be generated; this image must have the same number of lines/columns as input_image1). |
| disable_subimage_search | (int) - If present (any value) the sub-image search will not enabled (the sub-image search improves the tie-point distribution homogeneity - default:sub-image search enabled). |
| out_maximas_image1_ptr | (TePDITypes::TePDIRasterPtrType) - This parameters is for visualization and test purposes and if this parameter is present and the pointer is valid (pointing to a valid raster instance) the output maximas image (frim input image 1) will be generated an copied to the pointed raster (this raster will be initiated to 3 RGB bands where the maximas points are marked with value R255G0B0). |
| out_maximas_image2_ptr | - The same as the out_maximas_image1_ptr parameter but for the second input image. |
- Examples:
-
TePDIMMIOMatching_test.cpp.