clc;
fprintf('Beginning to run %s.m ...\n', mfilename);
close all;
imtool close all;
clear;
workspace;
fontSize = 15;
grayImage = abs(randn(224,224)+50);
m =2*abs(randn(90-10+1,60-10+1)+22);
grayImage(10:90, 10:60) = m;
m1 =3*abs(randn(110-95+1,60-10+1)+19);
grayImage(95:110, 10:60) = m1;
[rows, columns, numberOfColorChannels] = size(grayImage)
subplot(2, 2, 1);
imagesc(grayImage)
impixelinfo;
colorbar
axis('on', 'image');
title('Original Image', 'FontSize', fontSize);
g = gcf;
g.WindowState = 'maximized'
fprintf('Done running %s.m ...\n', mfilename);
mask = grayImage > 53 | grayImage < 47;
mask = imfill(mask, 'holes');
mask = bwareafilt(mask, 2);
mask = bwconvhull(mask, 'objects');
subplot(2, 2, 2);
imshow(mask);
axis('on', 'image');
title('Mask Image', 'FontSize', fontSize);
r = 3;
se = strel('disk', r, 0);
bigMask = imdilate(mask, se);
smallMask = imerode(mask, se);
borderMask = xor(bigMask, smallMask);
subplot(2, 2, 3);
imshow(borderMask);
axis('on', 'image');
title('Border Mask Image', 'FontSize', fontSize);
windowSize = 5;
kernel = ones(windowSize) / windowSize^2;
blurredImage = imfilter(grayImage, kernel);
grayImage(borderMask) = blurredImage(borderMask);
subplot(2, 2, 4);
imagesc(grayImage)
impixelinfo;
colorbar
axis('on', 'image');
title('Final Blurred Image', 'FontSize', fontSize);
Best Answer