cnetthinner
Generate an updated control network with fewer points, with efficient spatial distributed across images.
cnetthinner will compute the most efficient spatial control point distribution for each image in the control network using an input number of maximum points. This would typically be used for very densely populated control networks that could be processed more quickly if some of the less-useful control points or measures were ignored or removed. cnetthinner's goal is to decrease the total number of control points without compromising their spatial coverage, as much as is possible.
cnetthinner accomplishes this goal using an algorithm called Suppression via Disk Covering (SDC) [1] to select the most spacially-efficient control points to retain.
The maximum and minimum number of Control Points to keep in the output Control Network can be specified with the MAXPOINTS and MINPOINTS parameters. MAXPOINTS must be specified by the user and should be determined by examining the current size and density of the Control Network. Suppressed Control Points can either be set to Ignored or Removed entirely from the output Control Network using the SUPPRESSED parameter. The results can also be adjusted using the WEIGHT and TOLERANCE parameters. The TOLERANCE parameter adjusts how flexible the number of output points allowed from the suppression calculation is around the MAXPOINTS value and the WEIGHT parameter adjusts how much each input control point's strength is weighted in the algorithm, specifically based on the number of valid measures with "goodness of fit" it has.
cnetthinner will output a Control Network and also output a Results PVL group. The Results group provides the following information about the results:
Group = Results Points = (Original Number of Points) Saved = (Number Of Points Retained) Suppressed = (Number of Points Ignored or Removed) Efficiency = (Number of Points Removed / Original Number of Points) * 100 percent End_Group
References
Efficiently selecting spatially distributed keypoints for visual tracking S Gauglitz, L Foschini, M Turk, T Höllerer Image Processing (ICIP), 18th IEEE International Conference on, 1869-1872Categories
History
Kris Becker | 2016-09-27 | Original Version |
Kristin Berry | 2016-11-25 | Add documentation, error-checking, and updates to meet ISIS coding standards and get checked in. Changed application name from cnetsuppress to cnetthinner on Kris's request. |
Kris Becker | 2020-01-20 | In file CnetManager.cpp, method KPoint::calculateStrength. Replaced BOOST ASSERT (abort) with the line "if ( count LE 0 ) return ( 0 )" to prevent a divide by zero and subsequent seg fault if a point doesn't contain valid measures when computing the point depth weight. |
Ken Edmundson | 2023-11-30 | Moved Kris Becker's bug fix of 2020-01-20 from UofA code base to USGS code base and updated documentation. References #5354. |