CMPS1371 Introduction to Computing for Engineers IMAGES
Images Images are considered as matrices whose elements are the pixel values of the image
Images Matlab has two main ways to represent an image that consists of M x N pixels: RGB or “true color” image: uses an MxNx3 array where the third index contains the RGB components Indexed color image: uses an MxN array containing integers that are the row entries in a “colormap” that defines the actual color.
RGB Color Image RGB: MxNx3 8-bit integer array M rows N columns RED BLUE GREEN Each in range 0→255 [215, 43, 62] Divide by 255 => [0.842, 0.175, 0.246]
Indexed Color Image Indexed Color: MxN array with values that index into an NCx3 colormap array that contains the actual RGB colors. M rows N columns3 256 rows 143 RED BLUE GREEN [0.142, 0.375, 0.846]
Reading Image Files Matlab can read and write data in most common image file formats: jpeg, tif, bmp, png, etc… A = imread(filename, fmt); reads file into an RGB image [A,map] = imread(filename, fmt); reads file into an indexed image
Loading an Image >> a = imread(‘picture.jpg’); >> imshow(a);
Image Characteristics Image (=matrix) size: size(a): R G B
RED plane A(:,:,[2 3]) = 0; imshow(a);
GREEN plane A(:,:,[1 3]) = 0; imshow(a);
BLUE plane A(:,:,[1 2]) = 0; imshow(a);
Geometric Manipulation of Images Let’s rearrange the pixels in the image: << Left/right = a(:end:-1:1,:); << image(Left/right) Reversing the rows Original
Geometric Manipulation of Images Let’s rearrange the pixels to be upside down: << updown = a(end:-1:1,:,:); << image(updown) Original Reversing the columns
Geometric Manipulation of Images Suppose we split an image into left and right halves and then replace one half with a mirror image of the other Original
Splitting Code function Anew = splitMirror(A) % ANEW = splitMirror(A) % Splits an image in half and % creates a mirror of the left half [Nr,Nc]=size(A); Anew=A; c2=round(Nc/2); % find midpoint for row=1:Nr for col=(c2+1):Nc cx=Nc+1-col; Anew(row,col)=A(row,cx); end
Cute Dog Picture
Lake Scene
Collage Design
Collage
Image Arithmetic Adding ‘imadd’: Brighten an image Subtracting ‘imsubtract’ Multiplying ‘immultiply’: Multiply two images multiply image by constant: brightens > 1, darkens < 1 Dividing ‘imdivide’
Spatial Transformations Resizing ‘imresize’: changes the size of the image Rotation ‘imrotate’: rotates the image by given angle Cropping ‘imcrop’: Extract a rectangular part of the image