Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save agaikwad123/887637d3e89bd13668d2037ad2d0f61a to your computer and use it in GitHub Desktop.
Save agaikwad123/887637d3e89bd13668d2037ad2d0f61a to your computer and use it in GitHub Desktop.
clc;clear all;close all;
img = imread('circles.png');
id = double(img);
[row col] = size(id);
SE = [1 1 1;1 1 1;1 1 1];
for i = 2:1:row-1
for j = 2:1:col-1
array = [SE(1)*id(i-1,j-1) , SE(2)*id(i-1,j) , SE(3)*id(i-1,j+1) , SE(4)*id(i,j-1) , SE(5)*id(i,j) , SE(6)*id(i,j+1) , SE(7)*id(i+1,j-1) , SE(8)*id(i+1,j) , SE(9)*id(i+1,j+1)];
dil(i,j) = max(array);
ero(i,j) = min(array);
end
end
for i = 2:1:row-2
for j = 2:1:col-2
oparray = [SE(1)*ero(i-1,j-1) , SE(2)*ero(i-1,j) , SE(3)*ero(i-1,j+1) , SE(4)*ero(i,j-1) , SE(5)*ero(i,j) , SE(6)*ero(i,j+1) , SE(7)*ero(i+1,j-1) , SE(8)*ero(i+1,j) , SE(9)*ero(i+1,j+1)];
op(i,j) = max(oparray);
closearray = [SE(1)*dil(i-1,j-1) , SE(2)*dil(i-1,j) , SE(3)*dil(i-1,j+1) , SE(4)*dil(i,j-1) , SE(5)*dil(i,j) , SE(6)*dil(i,j+1) , SE(7)*dil(i+1,j-1) , SE(8)*dil(i+1,j) , SE(9)*dil(i+1,j+1)];
clos(i,j) = min(closearray);
end
end
figure;
subplot(2,2,1),imshow(id);title('original image');
subplot(2,2,2),imshow(dil);title('dilated image');
subplot(2,2,3),imshow(id);title('original image');
subplot(2,2,4),imshow(ero);title('eroded image');
figure;
subplot(2,2,1),imshow(id);title('original image');
subplot(2,2,2),imshow(op);title('opening image');
subplot(2,2,3),imshow(id);title('original image');
subplot(2,2,4),imshow(clos);title('closing image');
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment