Assignment 1

CS 585 HW 1
E Chengyuan

Jan 29 2020

Problem Definition

The problem is to process images in different ways with my own functions . The program needs to input an image of my face, turn it into grayscale image, flipped image, and blurred image, and then output these images. The goal is to get more familiar with programming with images based on what I've learned in class.

Method and Implementation

The main idea is to create a grayscale version of my face, flip the image of my face horizontally, create a salt noise version of the image and denoise the salted image by mean filter. So, I wrote four functions to manipulate images in order that they all turn out to be what are required. For the grayscale image, I created the grayscale function in which I used two for loops to go through every row and column to get every pixel. Once getting to a new pixel, convert three values to one by dividing the sum value of red, green and blue channels by three and assign the value to the pixel of output image in the same position by using the formula 0.07 * img[i,j,0] + 0.72 * img[i,j,1] + 0.21 * img[i,j,2], 0, 255. For the horizontal flipped image, I created the flip function in which I used the same way as mentioned above to get every pixel. Once getting to a new pixel, assign three values to the symmetry pixel of output image. For the blurred image, I created the Gaussianblur function. In this approach, instead of a box filter consisting of equal filter coefficients, a Gaussian kernel is used. It is done with the function, cv2.GaussianBlur(). We should specify the width and height of the kernel which should be positive and odd. We also should specify the standard deviation in the X and Y directions, sigmaX and sigmaY respectively. If only sigmaX is specified, sigmaY is taken as equal to sigmaX. If both are given as zeros, they are calculated from the kernel size. Gaussian filtering is highly effective in removing Gaussian noise from the image.

Results

 Methods Images Original Gray Horizontally flip Gaussian Blur

Discussion

• The results show that my method is generally successfulThe impementation of grayscale conversion function allows for easy choice of different conversion methods. Results achieved by different methods are clearly comparable. My version of blurring function blurs the image by Guassian blur method.I repeat the same blurring procedure 5 times to get the enhanced version of blurrde image since the single blurring effect is not significant. Further work includes flipping of color image and vertical flipping.

Conclusions

The overall performance of output images is successfully. Taking the image of my face as an input, manipulating it in 3 ways and outputting the processed face. I am able to manipulate images to produce different outputs, which can be used to solve problems in image processing. Also, other solutions discussed above can be further implemented to improve performances.

Credits and Bibliography

https://www.geeksforgeeks.org/opencv-python-program-to-blur-an-image/