Filter Free

Filter Free is a straightforward piece of image editing software built in Python 3, TkInter, and OpenCV2. Its primary function is to apply various filters and alterations to the user's photos.

Summary

Emboss Filter
Thick Lines Cartoon Filter
Thin Lines Cartoon Filter
Sketch Filter
Invert Filter
Noisy Filter

Filter Free has six different filters that you can use to edit your photos. The filters are: emboss, cartoon with thick lines, cartoon with thin lines, sketch, invert, and old-fashioned. Each of those filters are shown in the images above, and will be explained here.

In addition to adding filters to your photos, Filter Free allows users to adjust the brighteness, contrast, and sharpness of their photos.


How It Works

The program contains an image processor that handles all of the image editing. When a user selects a filter or another change they would like to make to the photo, the photo and those changes are then sent to the image processor. The processor then executes those commands and applies the appropriate changes to the photo, and then sends the edited photo back. Because this method is modular, I can add as many filters or other photo editing features that I want to and still keep the project simple.

The filters each use different methods to produce the desired look. The majority of them use something called a "kernel" to alter the image. A kernel is a matrix that is used to alter the value of each pixel in an image based on the pixels surrounding it. If you're interested in learning more about it, here is a resource that explains it pretty well. Other filters use masks, adjust the channels of the image, and use bitwise operators to get their distinctive looks.


Emboss



Cartoon



Sketch



Invert



Old-Fashioned



Wrap Up

I really enjoyed making this project. It taught me a lot about OpenCV and image manipulation, but it also taught me how to integrate features into a modular UI that makes it easy to use. Up to this point, a lot of my projects have been command line based, and this was definitely a step up from that.

Maybe one day I'll revisit this project, and add some more advanced image manipulation features. Until then, see ya.