Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p><em>Regarding the edges:</em> I would assume that Photoshop uses something more sophisticated than a simple derivative filter (like Sobel) for edge detection. There are edge detection algorithms that try to find only "salient" edges, i.e. those that are relevant to human vision, edges a human artist would draw if he does a line sketch. An old and (rather) simple algorithm that goes in this direction (at least a bit) is the <a href="http://en.wikipedia.org/wiki/Canny_edge_detector" rel="noreferrer">Canny edge detector</a>. You should be able to find an implementation of this one. Google for "salient edges" for current research literature, but don't expect implementations or nice pseudocode in research papers.</p> <p><em>Regarding posterization:</em> Given their talks at SIGGRAPH, the Adobe guys are very much into bilateral filtering (please Google, I can't link any more), a smoothing technique that preserves important edges. I think if you apply the bilateral filter and posterize afterwards you should come closer to the look you want. Unfortunately, efficiently implementing the bilateral filter is not trivial.</p> <p><strong>Update for anyone still interested in this topic</strong></p> <p>The Bilateral filter, which I suggested above, is increasingly replaced with the <a href="http://research.microsoft.com/en-us/um/people/jiansun/papers/guidedfilter_eccv10.pdf" rel="noreferrer">Guided filter</a>, at least in the Computer Vision community (the graphics people don't seem to have realized the Guided filter yet). The Guided filter achieves similar results, but is much easier to implement efficiently. The exact algorithm for the Guided filter is highly efficient, while efficient Bilateral filtering requires approximations or insanely complicated algorithms.</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload