top of page
  • Andrew Jones

Creating 'Pop Art' using OpenCV and Python

I've recently been doing some work for a client in Soho, London. Every day on the way to the client I walk past the London Palladium, and have been admiring their 'Wall of Fame' which contains images of celebrities that have performed there.

The images on the wall are comprised of holes made in metal, with the size of the hole varying so that the image looks like the celebrities face, see below:

*That's most definitely Cliff Richard, not me.

I estimate there are about 10'000 holes (100 x 100) in each image.

As always, the first thought that popped into my head was - I wonder how I could create that in Python? So here we are.

I've got all the code below, but the general gist of what we're doing is this:

  • Selecting an image

  • Converting it to grey-scale

  • Downsizing it to the number of dots we want to draw

  • Selecting how big we want our output image to be

  • On a 'blank canvas' - drawing these dots, the size of each being dictated by the intensity of the pixel in the original image

  • Save the image

As an extra step, instead of just using black and white - I've chosen some bright colours which actually turns them almost 'pop-art'-esk. Feel free to play around with the colours as you want!

There is also a 'multiplier' value, which means we can draw our dots onto as large an image as we want (so if you create something you really like, you can take the massive file down to your local print shop and get it framed...!)

Here are some of the first examples I came out with (these are down-scaled quite a lot, they look much better at full size):

Have fun - let me know what creations you come up with!


Andrew Jones has over 10 years experience in Analytics, Data Science, and Machine Learning within the Digital, Retail, Telecoms and Travel industries - most recently at Amazon, & Sony PlayStation

2,971 views0 comments

Recent Posts

See All
bottom of page