This project focuses on image blurring, sharpening, blending, and playing with frequencies in an image. First we apply filters to images to blur and sharpen images. Then we blend images by creating hybrid images as well as blending images.
This part of the project finds the edges in an image by convolving images with the finite difference operators Dx and Dy.
This part of the project clarifies the edges in the image by blurring the image using a Gaussian filter before finding the edges.
The main difference is that the lines are clearer and there is less noise around the image. The lines are clearer as well as thicker, which makes edges easier to determine. The edges of the buildings in the background are also harder to see, and some of the silhouette lines like the legs and coat are a little less clearly defined as edges. This might be because I used a higher threshold to reduce the noise from the ground, which meant lost information from the background.
This part of the project sharpens images using the unsharp mask filter. The unsharp mask filter works by subtracting the low frequencies from an image to get the high frequencies only (aka details), and then adds them back on top of the original image. This can be done with a single convolution by applying the Laplacian of Gaussian filter on the image to get only the high frequencies.
For the sake of keeping my image sizes lower, I used cropped images to run the resharpening on.
For the painting image (a digitally produced image that I made with Vermillion, a VR painting app), there is resharpening of the image, but there are still details that are somewhat lost such as the canvas-like texture of the picture. As I increased the alpha value, the image got darker overall, but the edges didn't really come back into focus as much as it did originally. For the baby picture, there is also some resharpening of the image, but the original picture was somewhat noisy so the edges didn't refocus as easily.
Once I used alpha=10, the image is approximately the same brightness as the original image, but still loses a lot of detail.
This part of the project creates hybrid images - from up close you'll see one image, and from far away you'll see a different image. This is essentially achieved by combining a low pass filtered image with a high pass filtered image, so that you'll see the details of the high pass image up close while you'll see the low pass image far away.
This section of the project implements the Gaussian and Laplacian stacks needed to blend two images together.
Gaussian Apples | Laplacian Apples |
Gaussian Oranges | |
Laplacian Oranges |
This section blends images together using a Gaussian stack to blur splines across the image.
In conclusion, the biggest thing I learned during this project was how to take advantage of high and low frequencies in an image to retrieve details, colors, and more to perform sharpening as well as other image manipulation effects. Once I figured out how layer masks could be blurred at different Laplacian levels to blend two images together uniquely, I thought about how I could apply this knowledge to when I do digital art (which does have masking features, but has a much more hands-on method of drawing masks rather than prodedurally generating them). This was super fun and I think I understand all of the content!