1 / 26

Stipple Placement using Distance in a Weighted Graph

Explore the innovative algorithm for stippling based on graph traversal and weighted distances, prioritizing feature emphasis, with high-quality results and progressive placement. The method ensures blue noise distribution for naturalistic rendering, akin to historical mosaics.

pberthelot
Download Presentation

Stipple Placement using Distance in a Weighted Graph

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Stipple Placement using Distance in a Weighted Graph David Mould University of Saskatchewan

  2. Stippling • Sole primitive is a dot of ink [Wall Street Journal]

  3. Automatic Stippling • essentially halftoning: effort to match image intensity • Weighted Voronoi diagrams often employed (introduced by Secord) [Secord 2002]

  4. Importance of Edges [Façade] [child's drawing]

  5. Areas and Lines • Area-based methods inherently underemphasize linear features (edges) • Paths travel across linear features, and the point of crossing can be detected • Idea: multisource distance calculation (breadth-first search in graph) to find feature points

  6. Graph Traversal Starting point Structure (union of all visited nodes) Frontier (all unvisited sites adjacent to at least one visited site)

  7. Graph Traversal "edge" – high cost feature 4-connected isocontours path cost isocontours

  8. Progressive Stippling Method

  9. Algorithm Overview • Construct graph • Traverse graph • start at arbitrary point, distance zero • expand cheapest node • if cheapest node exceeds threshold: • place stipple on frontier • set cost of stipple location to zero • terminate when no nodes remain

  10. Graph Construction • Regular 4-connected lattice: one node per image pixel • Weighted edges: a*I + b*G

  11. Distance in Graph • Distance between two nodes is cost of shortest path • Cost of a path is the sum of all edge costs • Dijkstra's algorithm: finds costs from single source to all other nodes • source: added to frontier with cost 0 • "expansion step": convert cheapest frontier node to known node, add neighbours to frontier

  12. Stipple Placement • Expansion step: choose cheapest node from frontier, update neighbour costs • If expanded node cost exceeds threshold, trigger a stipple placement operation • choose stipple location (highest gradient location, in our implementation) • set cost to zero • add to frontier

  13. Progressive Stipple Placement

  14. Result

  15. Result

  16. Blue Noise Distribution • Blue noise: enforces minimum distance between any two samples • Progressive algorithm: path cost between sites is at least the threshold (may be more) • at time of placing stipple, cost to frontier exceeds threshold • stipples never placed behind frontier

  17. "handmade" distribution Progressive Voronoi

  18. Edge Emphasis

  19. Secord -- halftoning progressive

  20. Secord – weight is half intensity, half gradient Progressive

  21. Summary of Stippling Results • High-quality stipple placement • feature emphasis • "handmade" stipple distribution • "progressive" non-iterative algorithm • have not investigated stipple size changes

  22. Irregular Mosaics • Regions naturally defined by distance+sites • Regions irregular in shape, but tile boundaries conform to image edges • Akin to historical "chip" and "pebble" mosaics

  23. Mosaic Results

More Related