Algorithmic Portrait Painting Technique
Algorithmic John McCain Portrait
The picture above is a cropped version of the initial result of my experiments into creating an algorithmic portrait painting technique. The program I've created samples an existing photograph at a predefined resolution. The program then uses that color information to paint a new pixelated version of the picture using roughly rectangularly shaped recursive brush strokes. I allow the program to randomly choose colors for the image background.
My development and testing of this technique has been done on a rather small scale – working with an image of just 542 by 691 pixels. My next step will be to try scaling this technique up so that I can use it to produce portraits that are thousands of pixels wide/tall. I also want to modify the routines that produce the painted background so that the colors chosen are keyed to the predominant colors of the image's foreground subject.
Assuming that I am successful with scaling up the program to produce large pictures, I will probably experiment with it on non-portrait images that have a strong foreground – background contrast. I must say that so far this project has been fun, though at times aggravating as I struggle to produce code that creates the output that I visualize.
Ad Astra, Jim
3 Responses to “Algorithmic Portrait Painting Technique”
This is very interesting and has great possibilities! Thanks for sharing your work!
I find it hard to sell digitally manipulated photographs. I think they are a bit ahead of there time.
Good Luck, scaling up the program
Ah but these are not digitally manipulated photographs. The program works by first sampling a source image at a number of discrete locations to collect color information. The program then starts with a blank canvas and paints a new picture. The source image has no role in the brush strokes that are made – only in the seeding colors used as starting points for color determination.
Thanks and Ad Luna to you. Jim