Categories
halftoning

Branching Lines

I was inspired by Rapidly Exploring Random Trees, and wanted to make a halftoning method based on that. I wanted more lines in dark areas and fewer in bright areas. With some tweaks on the concept, I’ve made something that works reasonably well. It probabilistically chooses new line segment endpoints that are relatively close to […]

Categories
halftoning

Quadtree Patterns

Also not very rigorous, but fun patterns. Basically divide the image up using quadtrees, and draw another sub-pattern if it needs to be darker. Check out squares: And circles: Not perfect, but I like the joining of the shapes.

Categories
halftoning

String Art

Here’s another non-rigorous one! I was inspired by a post showing off a sort of string art: run black string along a series of pins on a white background, and build an image that way. Here’s a couple examples, using 100 pins arranged in a circle: The first image picks its path with the darkest […]

Categories
halftoning

Merge and Split

I wanted an make an image that is sort of like growing branches, but in a simpler way. This isn’t a very rigorous method, but we can use the plane waves approach to make a neat image. Basically, find properly spaced points on a series of rows, then connect them across rows. This leads to […]

Categories
halftoning

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.

Categories
halftoning

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! […]

Categories
halftoning

Stochastic Halftoning

Fancy patterns aren’t totally necessary. A field of random numbers can also provide a pattern with the right properties needed for local partitionless thresholding. Even simple white noise can work, as the header image shows. But that’s not so pretty. What about other colors of noise? Or minimum wavelengths? The following image shows different colors […]

Categories
halftoning

Thresholding with a Pattern

Last time, I used the Cumulative Distribution Function of an image’s intensity to make a black and white image. This time, I’ll use a different pattern as the basis for halftoning the image.  For example, I’ll use the following pattern of circles on a regular grid: This time, instead of finding a threshold from the […]

Categories
halftoning

Partitionless Halftoning

We’ve looked at two halftoning methods using thresholding: either directly on the image, or using a pattern. These require making subdivisions of the image to get any decent spatial resolution. Instead, we can specify properties of the pattern such that the pattern itself acts as a threshold. The black and white image can then be […]

Categories
halftoning

Intro to Halftoning

The general idea behind halftoning is to render an image using a very limited number of colors. On this blog, I’ll focus particularly on rendering black and white images. The following image is the Lena test image, and its grayscale version (converted in MATLAB). I’ll be using these for most of the approaches that I […]