Image processing and commercial tools
- 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 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.
- Load the Lena image 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.
Write a Matlab script to do the following.
- Read 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.
- Reduce the resolution of 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 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”.) ii. Bilinear interpolation (do not use interp2, use your own code). iii. 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.
Reviews
There are no reviews yet.