Skip to topic
|
Skip to bottom
Jump:
TModeling
TModeling Web
TModeling Web Home
Changes
Notify
Index
Search
Webs
BioGeometry
Main
TModeling
TWiki
Edit
Attach
Printable
TModeling.RingFilt
r1.1 - 31 Dec 2008 - 18:04 - Main.guest
topic end
Start of topic |
Skip to actions
*RingFilt* A state machine based filtering program that fits a surface to the one-ring or two-ring of triangles around each point and filters away points & triangles according to the specified filter. _Note:_ The Ring filtering state machine always assumes that we need at least the 2-ring for filtering. Which implies we need a 3-ring before we can safely delete any vertices. This has the side effect of reordering vertices and triangles on output to satisfy this 2-ring property. For instance, You may notice re-ordered meshes drawing all interior vertices first and then vertices on the border later. _Note:_ All Filters have been modified to support LOW / HIGH thresholding, if those flags are specified (-zsplit and -zsub). -------- ---++++Filter Flags Types of supported filters <pre>-fnon</pre> Run *DO NOTHING* filter * Pass thru filter, does no filtering, except for re-order side-effect mentioned above <pre>-f1r</pre> Run Simple Average Height Filter on 1-Ring of each vertex * Computes best fit z-value as average of neighbors in 1-ring <pre>-f2r</pre> Run Simple Average Height Filter on 2-Ring of each vertex * Computes best fit z-value as average of neighbors in both 1-ring and 2-ring <pre>-fl1r</pre> Run Plane Fitting (Linear Least Squares) Filter on 1-ring of each vertex * Computes best fit plane to data points in 1-ring * Needs at least 3 data points to compute best fit plane * Reverts to -f1r filter if there are not enough data points * best-fit z-value as computed from planar equation for current x,y * z = Ax + By + C <pre>-fq2r</pre> Run Quadratic Surface Fitting (Linear Least Squares) filter on 2-ring of each vertex * Computes best fit quadratic surface thru data points in 1-ring and 2-ring * Needs at least 6 data points to compute best fit surface * Reverts to -fl1r filter if there are not enough data points * best-fit z-value as computed from quadratic equation for current x,y * z = Ax^2 + By^2 + Cxy + Dx + Ey + F <pre>-flhi1r</pre> Run LOW / HIGH isolated filter on 1-ring filter of each vertex * If point is LOW and all neighbors in 1-ring are HIGH, mark as filtered * If point is HIGH and all neighbors in 1-ring are LOW, mark as filtered * In both cases, best fit z-value is computed as simple average of neighbors z-values * Need to specify valid -zsplit and -zsub flags to make this filter do any useful work <pre>-flhi2r</pre> Run LOW / HIGH isolated filter on 2-ring filter of each vertex * If point is LOW and all neighbors in 1-ring and 2-ring are HIGH, mark as filtered * If point is HIGH and all neighbors in 1-ring and 2-ring are LOW, mark as filtered * In both cases, best fit z-value is computed as simple average of neighbors z-values * Need to specify valid -zsplit and -zsub flags to make this filter do any useful work -------- ---++++Filter Modifier Flags Modifiers to supported filters <pre>-fpmin</pre> Run Local Minima Filter variation (works with -f1r, -f2r, -fl1r, -fq2r flags) * If z-value is below best-fit z-value, it gets filtered <pre>-fpmax</pre> Run Local Maxima Filter varation (works with -f1r, -f2r, -fl1r, -fq2r flags) * if z-value is above best-fit z-value, it gets filtered <pre>-fpvar</pre> Run Variance Filter varation *default* (works with -f1r, -f2r, -fl1r, -fq2r flags) * if variance of best-fit z-value is outside the variance range [minSigma, maxSigma] it gets filtered <pre>-sigmin {floatVal} </pre> Min Variance Value for variance filters, (variances smaller than this get filtered away) defaults to 0.0 if not specified. <pre>-sigmax {floatVal} </pre> Max Variance Value for variance filters, (variances larger than this get filtered away) defaults to 3.0 if not specified. -------- ---++++Disposal Policy Flags Controls what to do with a vertex if it is marked as filtered <pre>-replace</pre> Replace any filtered vertices with the computed best-fit z-value <pre>-delete</pre> Delete filtered vertices (also deletes all incident triangles on deleted vertex) -------- ---++++Low / High Thresholding <pre>-zsplit {floatVal} </pre> threshold value, * if (zVal <= threhold) then the current vertex belongs to the *LOW* group * otherwise it belongs to *HIGH* group <pre>-zsub {floatVal} </pre> Value to subtract from high group before filtering operations -------- ---++++Input / Output Files _Note:_ Both of these flags need to be specified for this app to work properly. <pre>-i {filename}</pre> Input file to read and filter <pre>-o {filename}</pre> Output file to write out --------- ---++++Input File Formats _Note:_ Unlike other tools, at least one of these must be specified for this app to work properly. <pre>-isma</pre> Use Streaming Mesh ASCII <pre>-ismb</pre> Use Streaming Mesh Binary <pre>-ismc</pre> Use Streaming Mesh Compressed <pre>-ismd</pre> Use Streaming Mesh Compressed (???) <pre>-iply</pre> Use Stanford's PLY format <pre>-ijrs</pre> Use Jonathon's Shewchuk's .ele and .node format <pre>-ioff</pre> Use OFF file format --------------- ---++++Output File Formats _Note:_ Unlike other tools, at least one of these must be specified for this app to work properly. _Streaming Point Formats_ <pre>-ospa</pre> Use Streaming *POINT* ASCII * All triangle commands are suppressed when writing to this format * You get a point cloud, which needs to be spatially finalized (via spfinalize) <pre>-ospb</pre> Use Streaming *POINT* Binary * All triangle commands are suppressed when writing to this format * You get a point cloud, which needs to be spatially finalized (via spfinalize) _Streaming Mesh Formats_ <pre>-osma</pre> Use Streaming Mesh ASCII <pre>-osmb</pre> Use Streaming Mesh Binary <pre>-osmc</pre> Use Streaming Mesh Compressed -------- ---++++Miscellaneous Flags <pre> -compact</pre> Turn on compaction (i.e. prereadaspre wrapper) <pre>-vcompact</pre> Turn on compaction (i.e. prereadaspre wrapper) <pre>-bbox</pre> Compute Min/Max Bounding Box <pre>-b</pre> Bit Rate for Compressed formats on output <pre>-bits {intVal} </pre> Bit Rate for Compressed formats on output <pre>-delay_read {intVal}</pre> Number of triangles to buffer on reading <pre>-dry</pre> ??? (Write Flag) <pre>-utf</pre> Use Triangle Finalize ( * Eliminates stand-a-lone finalize commands on output to ASCII output file formats (IE .sma). <pre>-h</pre> Help, Show example usage for "RingFilt" -- Main.ChristianStith - 17 Jun 2008 * [[%ATTACHURL%/Shawndb_Progress_Ring_filter.ppt][Shawndb_Progress_Ring_filter.ppt]]: slides of early usage of Ring filter
to top
End of topic
Skip to action links
|
Back to top
Edit
|
Attach image or document
|
Printable version
|
Raw text
|
More topic actions
Revisions: | r1.1
|
Total page history
|
Backlinks
You are here:
TModeling
>
RingFilt
to top
Copyright © 1999-2024 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki?
Send feedback