-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathOpening.m
More file actions
31 lines (23 loc) · 764 Bytes
/
Opening.m
File metadata and controls
31 lines (23 loc) · 764 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
function [resultImage] = Opening(resultWriter, sourceImage, radius)
diskKernel = Disk_kernel(radius);
resultImage = imopen(sourceImage, diskKernel);
resultWriter.SaveStepImage(resultImage, "open.png");
end
function [kernel] = Disk_kernel(radius)
diameter = 2 * radius + 1;
kernel = zeros(diameter, diameter);
middle = round(diameter / 2);
kernel(middle,:) = 1;
kernel(:,middle) = 1;
for x = 1 : 1 : diameter
for y = 1 : 1 : diameter
distance = round(CalculateDistance(abs(middle - x), abs(middle - y)));
if distance <= radius
kernel(x, y) = 1;
end
end
end
end
function distance = CalculateDistance(x, y)
distance = sqrt(x * x + y * y);
end