Saturday, August 31, 2013

MAT-LAB Image Processing, Basic Image Operations

MAT-LAB BASIC IMAGE OPERATIONS


Image Addition

%Adding constant to image, using inbuilt function
img = imread('face.tif');
img1 = imadd(img,128);
subplot(2,3,1), imshow(img);
title('Original');
subplot(2,3,2), imshow(img1);
title('Inbuilt function added 128');
%Manually
img2 = img;
for i=1:size(img)
for j=1:size(img)
img2(i,j) = img(i,j)+64;
end
end
subplot(2,3,3), imshow(img2);
title('Manually added 64');
%Adding two images of same size 300x300
img3 = rgb2ind(imread('pattern.tiff'),0);
img4 = uint8(zeros(300,300));
for i=1:size(img)
for j=1:size(img)
img4(i,j) = img(i,j)+img3(i,j);
end
end
%img4 = img+img3; even this works
subplot(2,3,4), imshow(img);
title('Original image1');
subplot(2,3,5), imshow(img3);
title('Original image2');
subplot(2,3,6), imshow(img4);
title('Effect of adding image1 and image2');




Image Subtraction

%Subtracting constant to image, using inbuilt function
img = imread('face.tif');
img1 = imsubtract(img,128);
subplot(2,3,1), imshow(img);
title('Original');
subplot(2,3,2), imshow(img1);
title('Inbuilt function subtracted 128');
%Manually
img2 = img;
for i=1:size(img)
for j=1:size(img)
img2(i,j) = img(i,j)-64;
end
end
subplot(2,3,3), imshow(img2);
title('Manually subtracted 64');
%Subtracting two images of same size 300x300
img3 = imread('pattern4.tif');
img4 = uint8(zeros(300,300));
for i=1:size(img)
for j=1:size(img)
img4(i,j) = img(i,j)-img3(i,j);
end
end
%img4 = img3 - img;
subplot(2,3,4), imshow(img);
title('Original image1');
subplot(2,3,5), imshow(img3);
title('Original image2');
subplot(2,3,6), imshow(img4);
title('Effect of subtracting image 1 and 2');




Image Division

%Divide image by 128, using inbuilt function
img = imread('face.tif');
img1 = imdivide(img,2);
subplot(2,3,1), imshow(img);
title('Original');
subplot(2,3,2), imshow(img1);
title('Inbuilt function divided by 2');
%Manually
img2 = zeros(300,300);
for i=1:size(img)
for j=1:size(img)
img2(i,j) = img(i,j)/128;
end
end
subplot(2,3,3), imshow(img2);
title('Manually divided by 128');
%Dividing two images of same size 300x300
img3 = imread('pattern3.tif');
img4 = zeros(300,300);
for i=1:size(img)
for j=1:size(img)
img4(i,j) = img(i,j)/img3(i,j);
end
end
%img4 = img3 - img;
subplot(2,3,4), imshow(img);
title('Original image1');
subplot(2,3,5), imshow(img3);
title('Original image2');
subplot(2,3,6), imshow(img4);
title('Effect of dividing image1 by image2');




Image Multiplication

%Multiply image by 8, using inbuilt function
img = imread('face.tif');
img1 = immultiply(img,4);
subplot(2,3,1), imshow(img);
title('Original');
subplot(2,3,2), imshow(img1);
title('Inbuilt function multiplied by 4');
%Manually
img2 = uint8(zeros(300,300));
for i=1:size(img)
for j=1:size(img)
img2(i,j) = img(i,j)*0.5;
end
end
subplot(2,3,3), imshow(img2);
title('Manually multiplied by 0.5');
%Multiplying two images of same size 300x300
img3 = uint8(ones(300,300));
for i=1:300
for j=1:300
img3(i+(i-1),j+(j-1))=2;
end
end
img4 = uint8(zeros(300,300));
for i=1:size(img)
for j=1:size(img)
img4(i,j) = img(i,j)*img3(i,j);
end
end
%img4 = img3 - img;
subplot(2,3,4), imshow(img);
title('Original image1');
subplot(2,3,5), imshow(img3);
title('Original image2');
subplot(2,3,6), imshow(img4);
title('Effect of multiplying image1 and image2');




Logical AND

%Logical AND operation
A = imread('logical1.tif');
A = logical(A);
B = imread('logical2.tif');
B = logical(B);
C = A & B;
subplot(2,3,1), imshow(A);
title('Original Image 1');
subplot(2,3,2), imshow(B);
title('Original Image 2');
subplot(2,3,3), imshow(C);
title('Effect of Logical AND');
D = logical(imread('logical3.tif'));
E = A & D;
subplot(2,3,4), imshow(A);
title('Original Image 1');
subplot(2,3,5), imshow(D);
title('Original Image 3');
subplot(2,3,6), imshow(E);
title('Effect of Logical AND');
%***********************************************
%Applications are in Object movement detection




Logical OR

% Image Logical OR
A = imread('logical4.tif');
A = logical(A);
B = imread('logical5.tif');
B = logical(B);
C = A | B;
subplot(2,3,1), imshow(A);
title('Original Image 1');
subplot(2,3,2), imshow(B);
title('Original Image 2');
subplot(2,3,3), imshow(C);
title('Effect of Logical OR');
D = logical(imread('logical6.tif'));
E = logical(imread('logical7.tif'));
F = D | E;
subplot(2,3,4), imshow(D);
title('Original Image 3');
subplot(2,3,5), imshow(E);
title('Original Image 4');
subplot(2,3,6), imshow(F);
title('Effect of Logical OR');
%Pattern analysis


No comments:

Post a Comment