Isis 2 Documentation
coreg2 - Subpixel registration of a pair of images The first input image will be subpixel registered to the second input image. This program will normally be used on multispectral datasets. There must be a reasonably strong positive correlation between the input datasets for the algorithm to work properly. There will be roughly (MAXBOX-MINBOX+1)/BOXINC chip registrations attempted for the image. They are then evaluated to determine which one is the best registering box at the subpixel level. This is done by finding the box that satifies the selected BESTBOX method of evaluating the resulting registrations for the image. Both MINBOX and MAXBOX need not be specified by the user. If this is the case, then only one coregistration is performed and it is done on the entire image size. Specifying MINBOX and not MAXBOX will result in MAXBOX being set to the maximum size of lines or samples and the using BOXINC to determine how many boxes will be registered in the range from MINBOX to MAXBOX. If only MAXBOX is specified, then MINBOX is set to MAXBOX and only one image coregistration is performed limiting the image dimensions to MAXBOX square pixels. For cases where only one box is computed, BESTBOX values have little meaning as it is the only one considered ("BESTTOL"). The registration boxes are centered on the center of the FROM image, i.e., LINE/2, SAMPLE/2. The first image "chip" computed is MINBOX in size. Subsequent registration boxes are sized by increments of BOXINC from MINBOX until the size of the box is greater than MAXBOX. Registrations are then terminated and the best fitting box size is determined. This is then used to shift the FROM image cube (all bands) to spatially register it (them) to the FROM2 image. Correlations can sometimes fluctuate up and down as the box size decreases. Hence, the best box is one that either has the highest occuring correlation (BESTBOX="HIGH") or the last occuring (BESTBOX="LAST", i.e., smallest-sized box) until all the boxes are evaluated or a correlation coefficient drops below GOODFIT as specified by the user. Hence it is recomended to keep this value relatively high, close to 1.0 (the maximum correlation indicating perfect correlation). The BESTBOX="AVERAGE" option is computed by using all boxes that are greater than or equal to the GOODFIT and averaging the line and sample offsets and the correlation coefficient. These averages are returned to the user as the solution. On the other hand, the BESTBOX="NEARAVG" option also computes the average of all boxes with an acceptable level of tolerance but returns the box that is nearest the average. This option checks the absolute value of difference between BOTH the line and sample offsets from the average and returns the one closest. The "BESTTOL" option is much simpler as it simple scans through all boxes and finds the box with the highest tolerance (correlation value sometimes referred to as "R") greater than or equal to GOODFIT. The "BESTFIT" option uses the Chi-Square value of the least square difference. This option chooses the box with smallest chi-square value with the correlation coefficient greater than or equal to GOODFIT. Chi-Square is defined to be the sum of the square of the difference between the actual data and the modeled data. This is most likely a better indicator of a good least square model than the correlation coefficient, R. Note that the subpixel correlation coefficient is computed based upon a mathematical model of the surface created by surrounding correlations of the best registering whole pixel. The surface maximum is found and where this occurs is theoretically the location of the line and sample of the best registering subpixel. The subpixel correlation coefficient can fluctuate above and below the best registering whole pixel correlation based upon sensitivity of the model to the data. Because of this, the maximum of the subpixel and best whole pixel correlation is used as a single representation of the correlation coefficient for the current box. Also, note that the best registering box sample and line offsets cannot exceed the value of MAX(STOL,LTOL) as specified by the user or it will be rejected. This restricts the maximum amount the point can be moved in any direction. If you do not wish to apply this restriction, simply set it to a value greater than the maximum of STOL or LTOL. Furthermore, if any shift in line exceeds LTOL or sample exceeds STOL, the box is rejected regardless of correlation. This would indicate the the search range needs to be expanded to get a good registration result. coreg2 is only limited as to how much memory that it can allocate to process the input bands. For large 2-dimensional images, coreg2 may have trouble allocating 2 floating point image planes plus a single buffer for each side and bottom plane. All bands from the input cube file (FROM) are spatially adjusted by the indicated registration. If the user selected to register to the best whole pixel (REGLEV="PIXEL"), then the output image will not be registered at the subpixel level. A nearest neighbor pixel shift is performed instead. This option is useful if further more precise subpixel corrections are to be made in later processing steps. It is better to reduce the amount of pixel averaging because it can reduce data integrity. Side, bottom and back backplanes are all propagated with no modifications directly to the output cube file (TO). coreg2 optionally allows the user to also apply the polynomial coefficients to the output registered pixel. This, in effect, adjusts the registered output pixel to approximately the same brightness levels or also referred to as histogram matching. If APPLYCO=NO, then only the spatial registration will be computed. The values of LOW and HIGH are used to exclude pixel values from the computation of the registration. They are, however, processed (shifted) along with all other pixels and written to the output file. All input values that are already special pixel values will be propagated to the output cube unchanged. CHISQ, R, ADD, MULT and DYX parameters are so coreg2 can be run from within a procedure PDF and returns the output parameters of coreg2 to the calling PDF. This is set up so that coreg2 can still be run as a stand-alone program as well. (This is accomplished by setting these parameters to locally declared parameters that are simply discarded after the run.) When running coreg2 directly, do not modify the values of CHISQ, R, ADD, MULT, DYX, AVE, AVE2, STD, STD2, and NPTS. Programmer: Kris Becker, USGS, Flagstaff, Arizona
Parm | Description | Default |
---|---|---|
FROM | File name of the cube that will be registered | NONE |
SFROM | Subcube specified for FROM file | -- |
FROM2 | Second input cube file name. Image will be used to compute the registration parameters | NONE |
SFROM2 | Subcube specified for FROM2 file (Note: this must select a single band/image) | "::1" |
TO | Output file name | -- |
OTYPE | Output pixel type | 0 |
ORANGE | Minimum and maximum output pixel range | 0.0,0.0 |
LTOL | Maximum pixel misregistration allowed in LINE dimension | 10 |
STOL | Maximum pixel misregistration allowed in SAMPLE dimension Starting sample to compute pixel registration | 10 |
GOODFIT | Specifies the minimim acceptable goodness of fit/correlation between the two images. Correlation range is 0 (worst) to 1 (best). | 0.0 |
MINBOX | Minimum box size | -- |
MAXBOX | Maximum box size | -- |
BOXINC | Box size increment | 1 |
BESTBOX | Selects which box to use as the best correlating box: LAST - Pick the last occuring box above GOODFIT HIGH - Pick the highest correlating box of all boxes above GOODFIT AVERAGE - Compute the average of all boxes with a correlation coefficient greater than or equal to GOODFIT NEARAVG - Same as AVERAGE but returns the actual box that is closest to this average BESTTOL - Selects the box that has the highest sub- pixel correlation value (GOODFIT) BESTFIT - Selects the box that has the lowest Chi- Square value, an indicator of how well the data fits the least square model. | "BESTTOL" |
LINE | Starting line to compute pixel registration | |
SAMP | Starting sample to compute pixel registration | |
NSAMPS | Number of samples to use for pixel registration | |
NLINES | Number of lines to use for pixel registration | |
LINC | Line increment for the box LINC=0 will result in LINC set to NLINES | |
SINC | Sample increment for the box SINC=0 will result in SINC set to NSAMPS | |
GEOM | Geom data (Yes,No) | "NO" |
EQORDER | Order of of polynomial fit | 1 |
BAND | Band/image number from the FROM (input) file that will be used to calculate the pixel registration | 1 |
LOW | Lowest value of valid DN | -- |
HIGH | Highest value of valid DN | -- |
SAMPLING | Fraction of data to use in statistical sampling | 0.0 |
MIN | Minimum number points that can be used to compute registration | 5 |
FRAC | Fractional minimum of total points used to compute registration | 0.0 |
APPLYCO | Apply the returned polynimial coefficients to the output cube | "NO" |
REGLEV | Specifies level of pixel registration to apply SUBPIXEL - sub-pixel level PIXEL - pixel level | "SUBPIXEL" |
REGFILE | Name of text file to append result of registration | -- |
CHISQ | Chi-square value of the correlation computed for the two images | LOCAL0 |
R | Returns the correlation of fit computed for the two images | LOCAL1 |
ADD | Parameter that returns the additive component | LOCAL2 |
MULT | Array that returns the multiplicative components | LOCAL3 |
DYX | Two element array that returns the best registering subpixel line and sample offset | LOCAL4 |
AVE | Returns the average of the FROM image at the best fitting whole pixel solution | LOCAL5 |
AVE2 | Returns the average of the FROM2 image at the best fitting whole pixel solution | LOCAL6 |
STD | Returns the standard deviation of the FROM image at the best fitting whole pixel solution | LOCAL7 |
STD2 | Returns the standard deviation of the FROM2 image at the best fitting whole pixel solution | LOCAL8 |
NPTS | Returns the number of pixels used in the statistics for AVE, AVE2, STD and STD2. |
ADDITIONAL NOTES:
Parm | Description |
---|---|
FROM | The name of the input cube file. This file will be registered if the correlation is acceptable. (Default extention is .cub) |
SFROM | The input subcube specifier. Allows the user to select a subarea of the input cube for processing. The dimensions of the output cube are a function of this specification. The default " " selects the entire cube. |
FROM2 | The name of the secondary input cube file. This file contains the image that will be used to compute the pixel registration for the input (FROM) file. (Default extention is .cub) |
SFROM2 | The secondary input subcube specifier. Allows the user to select a subarea of the second (FROM2) input cube for processing. This specifier must select a single band/image and the spatial dimensions of this input file must be equivalent to the input file (FROM). The default "::1" selects all LINES, SAMPLES and the FIRST band from this file. |
TO | The output cube file created by coreg2. Will be the same pixel type as the input file. (Default extenstion is .cub) Note that this parameter need not be specified. For this case, only the coregistration values are computed and the application terminates normally. This option is commonly used to simply acquire the coregistration and apply it in later processing. Example: output |
OTYPE | Output pixel data type. Permitted values are: 0 - output type is same as input file pixel type 1 - 8-bit (integer with type conversion parameters) 2 - 16-bit (integer with type conversion parameters) 3 - 32-bit (floating point) When processed data are being written back into the input file, the output pixel type must be the same as the existing pixel type in the input file. |
ORANGE | Output pixel data range. If the output pixel type is 1 (8-bit integer with type conversion parameters) or 2 (16-bit integer with type conversion parameters), then the type conversion parameters in the output file will be set to values that allow representing the specified range of output values. Output values outside this range will be stored as the special "representation saturation" value. The ORANGE parameter is ignored if the output pixel type is 3 (32-bit floating point) since type conversion parameters are not applicable to floating point pixel values. If both ORANGE(1) and ORANGE(2) are 0.0, then the type conversion parameters in the output file will automatically be set to represent the minimum and maximum values that the output bit type can store. (The user will be required to supply a specific range for ORANGE if the input pixel type is 3 (32-bit floating point) and the output pixel type is 1 (8-bit with type conversion parameters) or 2 (16-bit with type conversion parameters)). |
LTOL | The maximum estimated pixel misregistration in the LINE dimension. LTOL must be greater than zero. If LTOL is less than or equal to zero, coreg2 will assign LTOL=5. |
STOL | The maximum estimated pixel misregistration in the SAMPLE dimension. STOL must be greater than zero. If STOL is less than or equal to zero, coreg2 will assign STOL=5. |
GOODFIT | This parameter allows the user to specify a minimum acceptable goodness of fit. If the correlation bewteen the two images is less that GOODFIT, the no output file will be generated and the program returns an error condition. If the correlation coeeficient is greater than or equal to GOODNES, then an output file will be generated using the returned pixel registration parameters. Note that the correlation coeeficient will range from 0 to 1 where 0 is the worst fit, 1 is the best fit. This parameter is very useful for simply testing correlation between two images. This can be easily achieved setting GOODFIT to any value greater than 1.0 (GOODFIT=2.0). |
MINBOX | Minimum box size. The smallest box size to be used to compute subpixel registrations for the image pair. If this parameter is not provided, then it will be set to MAXBOX and only one image coregistration will be computed at the center of the image. |
MAXBOX | Maximum box size. The largest box size to be used to compute subpixel registrations for the image pair. If this parameter is not given, will be set to the maximum of the lines and samples, which ever is larger, of the FROM image. |
BOXINC | Specifies the increment of the "chip" box from MINBOX to MAXBOX. BOXINC=1 will compute a chip registration at every size box from MINBOX to MAXBOX. It can increment in any whole number greater than 0. The first "chip" registered will be done using MINBOX as the square size of the box. Each subsequent registration chip will be incremented by BOXINC and computed until the size of the box exceeds MAXBOX. Then all the boxes are evaluated to determine the best registering chip. |
BESTBOX | This parameter allows the user to choose which box is the best representation of a match. "LAST" will select the last occuring box in the first occuring span of registration correlations above GOODFIT. This cooresponds to the smallest box size in that span. "HIGH" will select the highest correlating box of all registrations in the first occuring span of value above GOODFIT. This is not always, or necessarily, the smallest box size. The "AVERAGE" option is computed using all boxes that have a correlation coefficient greater than or equal to GOODFIT. The average line and sample offsets are computed as well as the average of the correlation coefficient. The "NEARAVG" option is similar to the "AVERAGE" option except the actual box that is closest to the average is returned. This box is determined by the smallest absolute difference of the sums of both the line and sample offsets from the average. Note that the "AVERAGE" option will generate a completely separate box. With this option, the selected box will always show up in the SUCFILE as the last box indicated as the one selected. It will inherit many characteristics of the box nearest to this average as defined by the "NEARAVG" option. The "BESTTOL" option will select the box that has the highest tolerance value. The highest possible value that can be attained is 1.0 indicating perfect correlation between the two chips. It will only consider correlation coefficients greater than or equal to GOODFIT selecting the box with the highest GOODFIT value. It considers all boxes. The "BESTFIT" option will select the box that has the lowest Chi-Square value. Chi-Square is an indicator of how well the data fits the least square fit model. It is defined as the mean difference between the observed data and the least square model of the data at each point. A lower value indicates a better model. All boxes must also have a correlation coefficient greater than or equal to GOODFIT. Note that the "BESTTOL" and "BESTFIT" options will not always return the same box but will more times than not. |
LINE | Specifies the starting line in BOTH input cubes where the registration is to be computed. Together with NLINES this determines the height of the box. |
SAMP | This parameter specifies the starting sample in BOTH input cubes. Together with NSAMPS, this will determine the width of the box to use to register the two images. |
NLINES | This specifies the number of lines in each box used to compute the registration. |
NSAMPS | This specifies the number of samples in each box used to compute the registration. |
LINC | Line increment for the box. This value is the amount of line each registration box is moved down the image. This value may be used to define overlapping boxes or a single box in the line dimension. If LINC = 0, then it will be set to the value of NLINES. |
SINC | Sample increment for the box. This value is the amount of samples each registration box is moved across the image. This value may be used to define overlapping boxes or a single box in the sample dimension. If SINC = 0, then it will be set to the value of NSAMPS. |
GEOM | This indicates whether the data needs to be geomed before trying to subpixel register. This will need to be done if the images are rotated from each other. For IMP images, it is best not to geom. Note that the truth point chip is always held fixed. The point being registered to the truth point is always the one that has the "fast" geometric transform applied to match truth point geometry. |
EQORDER | EQORDER is the order of the polynomial equation used. Valid values are 1-8. |
BAND | This parameter selects the BAND/image from the input cube file (FROM) that will be used to compute the pixel registration. |
LOW | The lowest value of valid DNs. If LOW = 11, then pixels with DN values less than 11 will be excluded from registration computations. |
HIGH | The highest value of valid DNs. If HIGH = 200, then values greater that 200 will be excluded from registration computations. |
SAMPLING | This parameter specifies the fraction of common image data overlap that will used to compute the registration coefficients. Valid values range greater than 0.0 to 1.0. A value of 1.0 will result in usage of all possible valid data values. Any other value will be MAXPTS = (SAMPLING * (NLINES * NSAMPS)) as the maximum possible data values to use. Note that values other than 1.0 may actually result in substantially less data values used because of the way the sampling set is determined. There is an offset and increment computed based upon the following formula: IF (MAXPTS .GE. (NL*NS)) THEN INC = 1 INCH = 0 ELSE XINC=SQRT(REAL(NL*NS)/REAL(MAXPTS)) INC=INT(XINC)+1 INCH=INC/2+1 ENDIF Sampling collection loops are as follows: N = 0 DO 101 IL2=INL1+INCH,INL2-INCH,INC DO 101 IS2=INS1+INCH,INS2-INCH,INC IF(RBUF2(IS2,IL2) .LT. DMIN) GO TO 101 IF(RBUF2(IS2,IL2) .GT. DMAX) GO TO 101 IL1=IL2+L IS1=IS2+K IF(RBUF1(IS1,IL1) .LT. DMIN) GO TO 101 IF(RBUF1(IS1,IL1) .GT. DMAX) GO TO 101 C Add the pixel to the points array N=N+1 A1(A1NDX+N)=RBUF1(IS1,IL1) A2(A2NDX+N)=RBUF2(IS2,IL2) 101 CONTINUE where L and K and the current LINE and SAMPLE offset being considered, respectively. |
MIN | Specifies the minimum number of points that can be used to compute the pixel registration. This value should be such that a least square fit function can return resonable results. Note that FRAC may also be used to give an additional option on specifying this value. Note, however, that BOTH MIN and FRAC cannot be used. If this case does occur, the value of MIN will be used. |
FRAC | This parameter can also be used to specify a fractional miniumum of the total points that can be used to compute the pixel registration. For example, if coreg2 uses 2000 points maximum to compute the correlation and FRAC is 0.05, then the minimum number of points that can be used is MIN = (0.05 * 2000) = 100. Note, however, that BOTH MIN and FRAC cannot be used. If this case does occur, the value of MIN will be used. |
APPLYCO | Specifies that the returned polynomial coeffecients be applied to the output cube. Based upon the order of the equation specified in EQORDER, the output registered pixel will be computed using: DNOUT = COEF(1) + COEF(2)*DNREG^1 + COEF(3)*DNREG^2 + ... COEF(EQORDER+1)*DNREG^EQORDER Note that the coefficients are applied if requested even when whole pixel registration is selected (REGLEV="PIXEL"). |
REGLEV | Allows the user to select the level of pixel registration that will be applied to the image. coreg2 always computes the best registering sub-pixel to the best fifth pixel. If REGLEV="SUBPIXEL", sub-pixel registration of up to four surrounding valid pixels will contribute to the output pixel value. If REGLEV="PIXEL", then nearest neighbor whole pixel registration will be performed. Note that this will be the best registering whole pixel as reported after the registration computations. |
REGFILE | This is the name of the file where the subpixel registration result is written. If it is not given, it will not be recorded. If provided by the user, the current result of the registration will be appended to this file. The result is written in the following format: FROM_IMGID FROM2_IMGID LINE_OFFSET SAMP_OFFSET R COEF_ARRAY Note that the COEF_ARRAY will be ADD and MULT parameters that are returned to the caller's PDF. This number of values that are written is EQORDER+1. If the specified file does not exist, it will be created. |
CHISQ | CHISQ is a parameter that will receive the Chi-square value computed by coreg2. This parameter is needed ONLY if coreg2 is run from a procedure PDF an the calling PDF wants the parameters to be returned. This is a single scalar value. |
R | R is a parameter that will receive the correlation coefficient computed by coreg2. This parameter is needed ONLY if coreg2 is run from a procedure PDF an the calling PDF wants the parameters to be returned. This is a single scalar value. |
ADD | ADD is a parameter that will receive the additive component of the coreg2. This parameter is needed ONLY if coreg2 is run from a procedure PDF an the calling PDF wants the parameters to be returned. This is a single scalar value. |
MULT | MULT is a parameter that will receive the multiplicative component of the coreg2. This parameter is needed ONLY if coreg2 is run from a procedure PDF an the calling PDF wants the parameters to be returned. This is an array of up to eight values. Note that MULT must be at least as large as EQORDER. |
DYX | DYX is a parameter that will receive the best registering sub-pixel offsets in the line and sample, respectively. If the user selects whole pixel registration only (REGLEV="PIXEL"), then this returns the best registering line and sample rather than the sub-pixel offsets. |
AVE | AVE is a parameter that will receive the average of all the pixels used from the FROM image to compute the coregistration. |
AVE2 | AVE2 is a parameter that will receive the average of all the pixels used from the FROM2 image to compute the coregistration. |
STD | STD is a parameter that will receive the standard deviation of the pixels used from the FROM image to compute the coregistration. |
STD2 | STD2 is a parameter that will receive the standard deviation of the pixels used from the FROM2 image to compute the coregistration. |
NPTS | Returns the total number of points used in the computation of the coregistration at the best registering box. All returned parameters are from this box. |
Contact us online at the Isis Support Center: http://isisdist.wr.usgs.gov