Inspiration

We wanted to develop a cool project that manipulates images, and we thought of the idea where large images are made up of smaller images and we wanted to automate that process.

What it does

This project is able to make a larger target image by putting together a variety of user inputted images.

How I built it

For our front end we used flask to create a webserver to get the user images. Our backend is made by first shrinking down all of our images to usable sizes (user images are 8x8 and target is 256x256). We then take the user inputted images and find their average colour and save it to a dict. For the target image, we break it down into 8x8 squares and find all of their average colours. We then compare the average colour of each 8x8 square in the target image to the user inputted squares and choose which one should replace it. We the stitch all of the 8x8 squares together to form the final image.

Challenges I ran into

We found trouble originally trying to figure out how to make this project. We then found the pillow library for python which does image manipulation and the project was then feasible.

Accomplishments that I'm proud of

We were able to complete the project and put it together in one day only with 2 people.

What I learned

We learned how to use Pillow for python and some open cv. We also learned how to use Flask to make a webserver.

What's next for Pointilism

We hope to improve the project by making the images a larger resolution so that the image looks cleaner and more crisp.

Built With

Share this project:

Updates