User's Guide

CORRELATE

Performs tie point refinement via grey, edge, or phase correlation

Function:

Performs registration refinement based on the maximum value of the gray-level (normalized cross) correlation function or the maximum value of the binary edge correlation function computed over a set of relative offsets between a search subimage and a reference subimage or based on the filtered phase correlation function.

Parameters:

Subcommand -GREY:
Performs registration refinement based on the maximum value of the grey-level (normalized cross) correlation function.

OUTTL
Output tie point location file. The output tie point location file containing correlation results.

IN("","")
Input image(s). The reference image name followed by the search image name. Both image names are optional. If the reference image name is not given, it is assumed reference subimage chips are being supplied. If the search image is not given, it is assumed prerotated and/or scaled search subimage chips are being used. Refer to the User Notes section for more information on processing with subimage chips. Windowing is ignored.

INMT(--)
Input merged tie point file. If defaulted, the user will be prompted for tie point data.

INTL(--)
Input tie point location file. If an input tie point location file is given, the contents of the file are copied to the output tie point location file before correlation begins.

MINCORR(6.0)
Minimum correlation. The minimum acceptable correlation strength.

MAXDIFF(-2.0)
Maximum difference. The maximum acceptable difference between the nominal tie point location and that given by correlation.

FITMETH(PARAB)
Fitting method. The correlation peak fitting method.


  = PARAB:    Elliptic paraboloid
  = GAUSS:    Elliptic Gaussian
  = RECIP:    Elliptic paraboloid fit to reciprocals
              of correlation values, after subtract-
              ing average background
  = INTEGER:  No surface fit; nearest neighbor

CONFLG(NO)
Confirmation flag.


  = YES:  Confirm.  Full details of correlation are 
          provided for each tie point and the user 
          is given an opportunity not to include the 
          tie point in the tie point location file.
  = NO:   Do not confirm.  Reports whether acceptable 
          correlation results were obtained and the
          active flag field in tie point location
          file is set accordingly.
Subcommand -EDGE:
Performs registration refinement based on the maximum value of the binary edge (cross) correlation function.

OUTTL
Output tie point location file. The output tie point location file containing correlation results.

IN("","")
Input image(s). The reference image name followed by the search image name. Both image names are optional. If the reference image name is not given, it is assumed reference subimage chips are being supplied. If the search image is not given, it is assumed prerotated and/or scaled search subimage chips are being used. Refer to the User Notes section for more information on processing with subimage chips. Windowing is ignored.

INMT(--)
Input merged tie point file. If defaulted, the user will be prompted for tie point data.

INTL(--)
Input tie point location file. If an input tie point location file is given, the contents of the file are copied to the output tie point location file before correlation begins.

EDGEVAL(0.15)
Edge value. The fraction of pixels to be classified as edges. Values outside the range 0.05 to 0.30 are unlikely to give good results.

MINCORR(6.0)
Minimum correlation. The minimum acceptable correlation strength.

MAXDIFF(-2.0)
Maximum difference. The maximum acceptable difference between the nominal tie point location and that given by correlation.

THRVAL(255.0)
Threshold value. The threshold pixel value for screening out cloud image data. Any pixel value above THRVAL will not be used by the algorithm. This threshold value will be compared to both the reference and search images. See User Note 6.

FITMETH(PARAB)
Fitting method. The correlation peak fitting method.


  = PARAB:    Elliptic paraboloid
  = GAUSS:    Elliptic Gaussian
  = RECIP:    Elliptic paraboloid fit to reciprocals
              of correlation values, after subtract-
              ing average background
  = INTEGER:  No surface fit; nearest neighbor

CONFLG(NO)
Confirmation flag.


  = YES:  Confirm.  Full details of correlation are 
          provided for each tie point and the user 
          is given an opportunity not to include the 
          tie point in the tie point location file.
  = NO:   Do not confirm.  Reports whether acceptable 
          correlation results were obtained and the
          active flag field in tie point location
          file is set accordingly.
Subcommand -PHASE:
Performs registration refinement based on the filtered phase correlation function.

OUTTL
Output tie point location file. The output tie point location file containing correlation results.

IN("","")
Input image(s). The reference image name followed by the search image name. Both image names are optional. If the reference image name is not given, it is assumed reference subimage chips are being supplied. If the search image is not given, it is assumed prerotated and/or scaled search subimage chips are being used. Refer to the User Notes section for more information on processing with subimage chips. Windowing is ignored.

INMT(--)
Input merged tie point file. If defaulted, the user will be prompted for tie point data.

INTL(--)
Input tie point location file. If an input tie point location file is given, the contents of the file are copied to the output tie point location file before correlation begins.

MINCORR(180.0)
Minimum correlation. The minimum acceptable correlation strength.

MAXDIFF(64.0)
Maximum difference. The maximum acceptable difference between the nominal tie point location and that given by correlation.

SIZE(128)
Search subimage size. The size of the subimage window.

STEP(12)
Stepping increment. The increment by which the 32 X 32 window is moved across the subimage.

EXPVAL(0.0)
Exponent value. The power to which correlation magnitude is raised. A value of 0.0 gives a phase correlation; a value of 1.0 gives a cross correlation; a value between 0.0 and 1.0 gives a filtered phase correlation.

CONFLG(NO)
Confirmation flag.


  = YES:  Confirm.  Full details of correlation are 
          provided for each tie point and the user 
          is given an opportunity not to include the 
          tie point in the tie point location file.
  = NO:   Do not confirm.  Reports whether acceptable 
          correlation results were obtained and the
          active flag field in tie point location
          file is set accordingly.

Examples:

  1. LAS> correlate-grey in=(ref,srch) inmt=nominal outtl=refined

    CORRELATE obtains tie point information from the merged tie point file NOMINAL and places its output in the tie point location file REFINED. For each tie point in NOMINAL, CORRELATE locates a correlation peak for the gray levels from the respective neighborhoods of the tie point in the images SRCH and REF. An elliptic paraboloid surface is fit to the correlation values in the vicinity of the peak. For each tie point, the strength of the correlation is compared against the default limits MINCORR=6 and MAXDIFF=-2.0, and the tie point active flag is set accordingly.

  2. LAS> correlate-edge in=(ref,srch) inmt=nominal outtl=refined edgeval=0.5

    CORRELATE obtains tie point information from the merged tie point file NOMINAL and places its output in the tie point location file REFINED. For each tie point in NOMINAL, CORRELATE first performs a gradient operation to enhanced edges. Next, the subimage is histogramed. Next, a thresholding operation is used (this creates a binary edge image). It then locates a correlation peak between the binary edge subimages. An elliptic paraboloid surface is fit to the correlation values in the vicinity of the peak. For each tie point, the strength of the correlation is compared against the default limits MINCORR=6 and MAXDIFF=-2.0, and the tie point active flag is set accordingly.

Description/Algorithm:

CORRELATE extracts tie point neighborhood subimages from an image that is to be geometrically rectified and uses gray-level (normalized) cross correlation, or binary edge-image cross correlation or Filtered phase correlation to refine tie point locations. Subimages are extracted from a single reference image or from multiple reference chip images. CORRELATE accomplishes tie point refinement using the following steps.

The first step determines the search and reference images used, the tie point location file to be created, and additional correlation parameters. If an input tie point location file is not used, correlation parameters are obtained from the user via TAE parameters. If an input tie point location file from a previous correlation process is given, most of the parameters are obtained from the header of the input tie point location file.

The next step extracts the tie point neighborhood subimage from the search image and the corresponding reference subimage from the reference image as each tie point is processed. Tie point specific parameters define the tie point neighborhoods and subimage sizes. The tie point parameters may be entered interactively before each tie point is correlated, or the parameters may be read from a merged tie point file as generated by TIEMERGE-PRECORR.

The third step is performed only with the EDGE subcommand. In this step, an edge extraction filter converts each grey-level subimage into a binary edge image. First a gradient filter is used to enhance image edges. Then a histogram of edge values is compiled, and an edge threshold is chosen so that the fraction of all pixels that are classified as edges can be as close to the EDGEVAL parameter as possible. An array of edge density values for each alignment of the reference subimage, relative to the input subimage, is also compiled.

The fourth step performs the actual correlation and determines the exact translational alignment of the reference subimage relative to the search subimage. This step also yields estimates of the strength of the correlation and the probable root mean square errors in the final alignment values. For the PHASE subcommand, a 32 x 32 reference images window is passed over the search subimage. The correlation is calculated at that point, then the window is moved forward by STEP pixels, and the correlation is recalculated. This continues until the entire subimage has been covered.

Each search and reference subimage is subjected to a complex valued Discrete Fourier Transform (DFT) via the Fast Fourier Transform (FFT) algorithm. Each element in the transformed search subimage is multiplied by the corresponding element in the conjugated reference subimage. With the PHASE subcommand, a product is divided by the absolute value of its multiplicands to give phase correlation. Next, an inverse FFT is applied to these results.

For the GREY and EDGE subcommands, the unnormalized sums of the pixel-by-pixel products (GREY) or the edge-pixel coincidences (EDGE) for every possible alignment within the specified search offsets are computed. These results are used to compute the normalized cross-correlation values.

Next, the alignment at which the correlation value is maximum is found. The overall strength is computed by first finding the mean and standard deviation of the correlation values for all alignments outside a 9 x 9 array centered on the main correlation peak. The difference between the main peak (maximum correlation value) and background (mean correlation value) and the difference between the main peak and the subsidiary peak (largest correlation value outside a 7 x 7 array centered on the main peak) are determined. These differences are then converted to units of standard deviations by dividing them by the standard deviation as previously computed. The overall correlation strength is then defined as the sum of these two heights plus 0.2 times the number of alignments in the neighborhood of the main peak whose correlation values exceed the value for the strongest subsidiary peak.

Finally, a quadratic surface is fit to the correlation values in the neighborhood of the main peak, and the fractional pixel coordinates of the peak and estimates of the root mean square errors in these coordinates are computed.

After converting to coordinates relative to the full search and reference images, the final step records the results of the correlation in the output tie point location file, one tie point at a time.

Nonfatal Error Messages:

    None.

Fatal Error Messages:

  1. [correlate-fatal] Fatal error encountered

    The error message displayed immediately preceding this message is the specific error encountered. Processing is terminated.

  2. [correlate-header] TPL file header has invalid fields

    One or more values in the header of the input tie point location file are invalid. Specify a new tie point location file, or edit the header of the existing tie point location file and rerun.

  3. [correlate-alloc] Error allocating memory

    An error occurred allocating memory. Rerun the function, and if the error reoccurs, notify the system manager.

User Notes:

  1. The following is a possible scenario involving the use of CORRELATE.

    a. Given a reference image, REF.IMG, and a search image, SRCH.IMG, taken at the same location but at a different time (image-to-image registration), run the TIEPTS module to select a set of tie points. The output will consist of two tie point selection files, for example REF.TSEL for the reference image and SRCH.TSEL for the search image.

    b. Run TIEMERGE-PRECORR, using REF.TSEL and SRCH.TSEL as inputs, to create a merged tie point file named TIE.MERGED.

    c. Run CORRELATE with

    IN=(REF.IMG,SRCH.IMG) INMT=TIE.MERGED OUTTL=TIE.LOC

    to generate the new tie point location file, TIE.LOC.

    d. Run POLYFIT (or EDITCORR, AUTOFIT) with TIE.LOC as input to generate a geometric mapping grid file, GEOMPRM.GRD.

    e. Run RESAMPLE with SRCH.IMG as the input image and GEOMPRM.GRD as the geometric mapping grid file to produce an image that is registered to the original image (REF.IMG).

  2. The results of the correlation, which include the estimated horizontal and vertical root mean square errors, the tie point active flag, the strength of correlation and the displacement of the nominal tie point location to that obtained from correlation, are stored in the output tie point location file. Depending upon the active flag, certain fields in the tie point location file will not be meaningful; for example, if the tie point is rejected because the correlation peak is too near the edge of the search image (active flag = 2), the correlation strength, the root mean square error, etc. are not computed and these fields must be ignored.

  3. If an input tie point location file is used and the input search image name does not agree with the image name in the tie point location file header, the user is warned and the name of the input search image is replaced by the image name contained in the header. If an input tie point location file is not given and the search image name from the header of the merged tie point file given does not match IN, the user is warned and the user-entered search image name is used. The search image name is copied to the header of output tie point location file in this case.

  4. An image "chip" is nothing more than a small (typically, 64 x 64) subimage centered about a tie point of interest. Three types of subimage chips may be used: reference chips for image-to-image registration, reference chips for geographic registration, and preprocessed search chips.

    To process with reference chips, enter a null ("") reference image name. To process with search chips, enter a null search image name. Each tie point record in the input merged tie point file must have the name of the chip image file or that tie point will not be processed. Tie point coordinates in the merged tie point file are relative to the subimage chip, not the full image. Each type of chip has a different way to reference coordinates back to the full image.

    Reference chips for image-to-image registration must have a valid master line and master sample field in the chip image's DDR to compute full image coordinates of the tie point. Reference chips for geographic registration must have valid projection and location information in the chip image's DDR. Furthermore, this information must match the projection and location information contained in the header of the merged tie point file. Geographic or projection coordinates of the tie point are given in the geo_coord field of the merged tie point file. This coordinate is converted to reference image coordinate space (the reference image might not exist) using the projection and location information. Preprocessed search chips are used when it is not feasible to process an entire search (input) image or when the search and reference images differ greatly in scale or distortions. Search chip images must have valid projection and location information in the DDR file. The "projection" is a userdefined space relating the subimage chip back to the full search image.

  5. The PHASE subcommand performs a filtered phase correlation which is implemented somewhat differently than the GREY and EDGE subcommands. PHASE sometimes gives unreliable results. Tests at EDC show that the GREY and EDGE subcommands give more reliable results for Landsat MSS and TM, AVHRR, and ERS-1 SAR and SEASAT imagery. The PHASE subcommand generally gives good results with small search images, but the "goodness-of-fit" is more difficult to determine.

  6. The THRVAL parameter in the EDGE subcommand should be used with care, as it is used in screening out pixels in both the search and reference images (or chips). For example, if reference chips contain line work with a pixel value of 255 and THRVAL is set to 200, all linework will be masked out and no correlations will be successful.