Categories

## Scribble Art

Let’s scribble! There are other papers that have used scribbling for halftoning images, but I want to add a bit more math. A simple model is to have a circle that travels along a base curve. We can parameterize this as: . To use this for halftoning, we should know the curve length (per period) […]

Categories

## HalftonePAL

HalftonePAL is a program written in Processing that lets you make halftoned versions of your images using circles, dots, and lines. You can change the size of the shapes, which pattern to use, switch between black or white paper (and the opposite ink), and more! It can save the output as SVG, JPG, or TXT […]

Categories

## Approximate Circle Packing

I’d like to be able to have a region that is densely packed with non-overlapping circles, whose sizes vary spatially in a pre-defined way. There are lots of resources for Poisson-disk sampling, but that doesn’t result in snugly packed circles. Time to do some tinkering! Random search The laziest way to do this: try to […]

Categories

## New Image via Cut-and-Paste

Previously, (1, 2) I’ve chopped one picture into square sections to make a new image. This time, I want to take freeform sections from a larger image to make a smaller one. This is basically like taking scissors to a magazine, then putting together the pieces to make a new picture. Let’s call the magazine […]

Categories

## Lithophane-based Hidden Images

I received a comment with a great idea: try to hide images in pairs of lithophanes! Lithophanes are thin sheets of an opaque and translucent material with varying thickness that display an image when held up to light. The image is bright where the material is thin, and dark where the material is thick. Previously, […]

Categories

## Four Images from Two Transparencies

Previously, I used polarized sheets to generate images. That’s too complicated to physically make, so it’s time to try something else. How about just two transparent films with black marks? Then we can try to encode four images that are revealed by overlapping the two, and rotating the top film. This sort of rotation problem […]

Categories

## Polarization Images

Have you ever played with polarized films? If they’re aligned, they look transparent. If they-re misaligned by 90 degrees, they become opaque. Let’s use this to make pictures! The intensity of transmission is governed by Malus’s Law, which says that the intensity is , where is the misalignment of the two films. Now how can […]

Categories

## More Fourier Noise Contours

Previously, I used single-frequency Fourier noise to do some halftoning. This time, I’ll use broad-frequency noise. I’ll filter 2D white noise with a gaussian with standard deviation . This reduces the high-frequency content. Let’s call the filtered noise , and the gradient-scaled version. Skipping all the tedious probability work, the pdf of the gradient-scaled noise […]

Categories

## Estimating Zero-Contour Length of Fourier Noise

One way to do stochastic halftoning is to draw contours of noise functions. For example, you can make 2D single-frequency Fourier noise, and draw a contour wherever the noise crosses the zero-level. If you do this with wavelength L, over an area of A, the total arc length turns out to be very nearly 2.2*A/L. […]

Categories

## Checkerboard Distortion Halftoning

In a previous post, I deformed a grid of lines to halftone an image. I wanted to do the same thing with a checkerboard, but I figured that it would be similarly difficult and would require optimization. So I used the same optimization framework with a checkerboard, applied it to a brightness ramp, and found: […]