The easiest way to make a reaction-diffusion pattern involves two blurs and a comparison. It doesn’t give the full fancy dynamics of other approaches, but it works well for halftoning. This simple method avoids differential equations, and works with just image filtering. At each step, the activation chemical spreads with radius , and the inhibition […]
The Eikonal equation is an approximation used in solving wave equations, and it turns out to also be good for stripes! We try to make a phase map, (), based on the brightness of the image (), with , where is the minimum wavelength desired. This can be approximately solved with the gray-weighted distance transform, […]
Those other stripes are nice sometimes, but what about varying the orientation and wavelength of the stripes? As before, the output can be formed by varying the wavelength or the width of the stripes. Here are comparisons of the two approaches on the Lena: Now how about the crossed patterns? Much improved, compared to the […]
Stripes: Distance from Edges
A quick one: the phase field can be computed as the scaled distance from edges in the image. Then apply the stripes math, and: This has reasonably interesting circular artifacts, but it is limited in how it responds to the image.
What if we want stripes to respond to an image? Well, we can make a version of the image that has gradients that are roughly parallel to those of the original image. Then we can use those as the basis of some stripes. Say we want a phase field that has gradients that are parallel […]
Stripes: Predefined Patterns
The simpler way to use stripes is as predefined patterns that aren’t responsive to the image. For example, here’s a few Lenas halftoned using such stripes.
Stripes: Plane waves
Stripes can be used as the partionless thresholding pattern, as was seen in a previous example. But what if we want the stripes to change in response to the image? Well, we can use a set of plane waves to march across the image. Here’s what happens when we do that in either direction. Neat! […]