Task
In this lab, you will develop the following image manipulations that can be performed on a user-specified image. Below is our reference image:
This will flip the supplied image horizontally. To accomplish, you will need to loop through your image and switch the order of every column. For example, if our picture had four columns numbered 0-3, you would need to swap columns 0 and 3, and columns 1 and 2.
This will flip the supplied image vertically. To accomplish, you will need to loop through your image and swap the order of every row. For example, if our picture had four rows numbered 0-3, you would swap row 0 with row 3, and row 1 with row 2.
NOTE: This will only work with square images. This one is probably the most conceptually difficult. Essentially, you will need to turn the first row into the last column, the 2nd row into the 2nd to last column, etc. until you turn the last row into the first column. Consider the following grid:
A 90 degree rotation would result in:
This one might be a little hard to see given the small resolution, but notice that the image is slightly less focused than the original image. To perform a blur, you will need to do the following:
1. For each pixel in a given row, set the pixel's red value to the average of itself and its horizontally adjacent neighbors (i.e. i + 1, i - 1). For border cases, just take the average of the singular neighbor.
a. Do the same procedure for the pixel's green and blue values
2. For each pixel in a given column, set the pixel's red value to be the average of itself and its vertically adjacent neighbors (i.e. j + 1, j -
1). For border cases, just take the average of the singular neighbor.
a. Do the same procedure for the pixel's green and blue values.