-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathmain_hsv.m
91 lines (71 loc) · 2.76 KB
/
main_hsv.m
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
primage = imread('images/kwiaty.png');
image = rgb2hsv(image);
%se:
% 1
% 111
% 1
se = [1 0; -1 0; 0 1; 0 -1];
%podstawowe operacje
eroded_image = erode(image, se);
dilated_image = dilate(image, se);
opened_image = openn(image, se);
closed_image = closee(image, se);
figure('Name', 'erozja');
eroded_image = hsv2rgb(eroded_image);
imshow(eroded_image);
imwrite(eroded_image, 'wynik_hsv_erozja.png');
figure('Name', 'dylacja');
dilated_image = hsv2rgb(dilated_image);
imshow(dilated_image);
imwrite(dilated_image, 'wynik_hsv_dylacja.png');
figure('Name', 'otwarcie');
opened_image = hsv2rgb(opened_image);
imshow(opened_image);
imwrite(opened_image, 'wynik_hsv_otwarcie.png');
figure('Name', 'zamknięcie');
closed_image = hsv2rgb(closed_image);
imshow(closed_image);
imwrite(closed_image, 'wynik_hsv_zamkniecie.png');
%gradienty
gradient_erode = erode_gradient(image, se);
gradient_dilate = dilate_gradient(image, se);
gradient_morphology = morphology_gradient(image, se);
figure('Name', 'gradient przez erozje');
gradient_erode = hsv2rgb(gradient_erode);
imshow(gradient_erode);
imwrite(gradient_erode, 'wynik_hsv_gradient_erozja.png');
figure('Name', 'gradient przez dylację');
gradient_dilate = hsv2rgb(gradient_dilate);
imshow(gradient_dilate);
imwrite(gradient_dilate, 'wynik_hsv_gradient_dylacja.png');
figure('Name', 'gradient morfologiczny');
gradient_morphology = hsv2rgb(gradient_morphology);
imshow(gradient_morphology);
imwrite(gradient_morphology, 'wynik_hsv_gradient_morfologiczny.png');
%top-hat
top_hat_image = top_hat(image, se);
bottom_hat_image = bottom_hat(image, se);
figure('Name', 'top hat');
top_hat_image = hsv2rgb(top_hat_image);
imshow(top_hat_image);
imwrite(top_hat_image, 'wynik_hsv_top_hat.png');
figure('Name', 'bottom hat');
bottom_hat_image = hsv2rgb(bottom_hat_image);
imshow(bottom_hat_image);
imwrite(bottom_hat_image, 'wynik_hsv_bottom_hat.png');
%rekonstrukcja przez dylację -- operacja trwa około 15 min !!!
mask = rgb2hsv(imread('images/paski.png'));
marker = rgb2hsv(imread('images/znacznik.png'));
reconstructed = hsv2rgb(im2double(dilation_recontruction(marker, mask, se, 30)));
imwrite(reconstructed, 'rekonstrukcja_dylacja_wynik_hsv.png');
%rekonstrukcja przez erozję -- operacja trwa około 40 min !!!
mask = rgb2hsv(imread('images/shapes.jpg'));
marker = rgb2hsv(imread('images/znaczniki_shapes_hsv.png'));
reconstructed = erosion_reconstruction(marker, mask, se, 20);
imwrite(hsv2rgb(reconstructed), 'rekonstrukcja_erozja_wynik_hsv.png');
% otwarcie przez rekonstrukcję
opened_image = open_reconstruction(image, se);
imwrite(hsv2rgb(opened_image), 'otwarcie_rekonstrukcja_wynik_hsv.png');
% zamknięcie przez rekonstrukcję
closed_image = close_reconstruction(image, se);
imwrite(hsv2rgb(closed_image), 'zamkniecie_rekonstrukcja_wynik_hsv.png');