210 likes | 324 Views
IMAGES. CMPS1371 Introduction to Computing for Engineers. 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:
E N D
IMAGES CMPS1371Introduction to Computing for Engineers
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 N columns BLUE GREEN Each in range 0→255 RED [215, 43, 62] M rows 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. N columns 3 256 rows RED 143 BLUE GREEN M rows [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): 384 512 3 R G B 384 512
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) Reversing the columns Original
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 end
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