Analysis of “Algorithms for the Reduction of Number of Points…”
Comments Made Elsewhere:
Discussion:
Digitizing pen input can be done through x-y values or polar coordinates. Another is to divide the drawing region into cells and represent lines by cell/point-cloud density, though this is computationally expensive. Discussion continues on older ways to digitize input.
Claim that most digitizers are able of recording more data points than needed. Have to remove duplicates and those in a straight line to improve offline processing and graphic display speeds. Can do this mathematically (which may overgeneralize and smooth pointy features), by criteria (points to close together; drop a vector that does deviate by threshold angle in chain encoding), or by a cartographer (and then a system which could “learn” what the cartography generalizes, but impossible to do).
For line reduction, a simple approach is to delete all by every nth point of a determined line (still with flaws, though). Another method is to select the points (which this paper focuses on, instead of deletion). How do you select them? Author suggests one of selecting the points that is the farthest perpendicular distance from the line segment between the two end points (most likely to characterize the line).
Method one: If all points are under a threshold, then the start (anchor) and end (floater) points are good to represent the line themselves. When above threshold, then maximum value is the new floater and process starts again. When complete, floater becomes anchor and process again, starts again.
Method two: same as method one, except all the floating points are saved in a vector so when the new anchor point is chosen, just select the one from the top. Selects more points than method one, but only takes 5% of the computation time and is thought to produce better caricatures.
Discussed Lang’s implementation of the above methods that reduced the number of calculations needed to be made. Discussed the speed comparisons of the different implementations.
Summary:
Even though an older article, this obviously still has merit today as we’d like to only process the data we actually need to.
I particularly found the chain encoding method interesting. Checking angles and distance on each new vector are easy ways to reduce points needed. Seems like it could be combined with the window feature of ShortStraw to determine a corner (was the collection angle by the last n points under some median threshold?).
But this opens to the door for lossy representation of an artist/sketcher’s original intention. This may be our first taste into “beautification”, the amount of being domain dependent.
Comments(0)