CMPS1371 Introduction to Computing for Engineers IMAGES.
-
Upload
grace-marlene-palmer -
Category
Documents
-
view
226 -
download
3
Transcript of CMPS1371 Introduction to Computing for Engineers IMAGES.
CMPS1371Introduction to
Computing for Engineers
IMAGES
Images
Images are considered as matrices whose elements are the pixel values of the image
M rows
N columns
RED BLUE
GREEN
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 r
ows
N columns
RED
BLUEGREEN 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 r
ows
N columns 3
256
row
s
143RED
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): 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)
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 midpointfor row=1:Nr for col=(c2+1):Nc cx=Nc+1-col; Anew(row,col)=A(row,cx); endend
Cute Dog Picture
Lake Scene
Collage Design
Cute Dog cropped to fitLake picture shrunk to
match
800
600
800
600
All borders 40 pixels wide
2 * 800 + 5 * 40
600
+ 4
* 4
0
R = 150G = 100B = 50
R = 255G = 255B = 200
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