Description
-
Image processing and commercial tools (15 points)
-
-
Capture a digital color image of yourself and enlarge it by a factor of 2.5 in both horizontal and vertical dimensions using an image editing tool. Put the original and enlarged images in your report.
-
-
-
Adjust 1_1.jpg (e.g. brightness, contrast …) until you find it most pleasant. Put the adjusted image in your report.
-
HINT: You could use any software you have (e.g. Adobe Photoshop, Paint/Photos in Windows).
-
MATLAB basics: image I/O and data types. (15 points)
-
-
Load the Lena image 1_4.bmp, using imread(), and show it using imshow().
-
-
-
Get the type of the loaded image data (Use MATLAB function class()), and get the maximum and the minimum data values for this image (Use MATLAB function max() and min()).
-
-
-
Convert the data to the “double” type (use MATLAB function double()), can you show the double-typed image using imshow() ?
-
If not, given an image which has been converted to the “double” type, how do you show the image?
-
HINT: MATLAB has an image value range for the default uint8 type in [0 255]. For imshow(), if the data type is double, it should be in the range [0 1]. Double type data can be converted to uint8 data, or data can be normalized to be in [0 1] for imshow().
-
Matlab basics: Matlab commands. (20 points) Write a Matlab script to do the following.
-
Read 1_2.tif and its associated colormap into variables named “X” and “map”. Use X and “map” to convert the image to a 256-level grayscale image Y.
-
-
-
Rotate Y 45 degrees clockwise to generate image Z.
-
-
-
Submit images Y and Z, and the script you wrote.
-
HINT: Use the Matlab commands: [X,map]=imread( ‘1_2.tif’, ‘tif’ ) , imshow(X, map) , ind2gray, imrotate.
Note: Write your own Matlab codes for the following problems.
-
Image Resolution. (50 points)
a. Reduce the resolution of 1_3.asc by a factor of 4 in both horizontal and vertical
dimensions (e.g., if the original image is 400 by 400, then result shall be 100 by 100) to create a decimated image using two different methods:
HINT: To read in an “.asc”, use X=load(‘1_3.asc’). For the double type, ‘imshow’ only works for images with values between 0 and 1. To display the .asc image, you may use imshow(X/256).
-
-
Keep one pixel out of every 4×4 pixel area. Display the resulting image Y1. HINT: This can be done with only one line of code. You do not need to use for loops to accomplish this. Consider what the command A=B(1:3:20, 1:3:30) does to an image B.
-
-
-
Replace every 4×4 pixel area in 1_3.asc by the average value of the pixel values in that region. Display the resulting image Y2.
-
-
Enlarge Image Y1 by a factor of 4 in both horizontal and vertical dimensions (e.g., from 100 by 100 to 400 by 400) using:
-
-
Pixel repeating. (Since each pixel is blown up to a 4×4 block, the image looks “blocky”.)
-
Bilinear interpolation (do not use interp2, use your own code).
-
Keep the resulting images from (b.i) and (b.ii) the same size as 1_3.asc and compare the images.
-
HINT: Use A=a to generate a matrix A with all entries equal to a.