-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathFun_neighbors.m
46 lines (40 loc) · 2.44 KB
/
Fun_neighbors.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
function [sasiedzi]=Fun_neighbors(c,x,y,z,sasiedztwo)
%% LABORATORIUM PRZETWARZANIA OBRAZÓW
%% Paweł Badura 2009
%%
%% Funkcja zwracajšca indeksy sasiadów piksela c
switch sasiedztwo
% case 4
% sasiedzi=[ c(1)-1,c(2);
% c(1),c(2)-1; c(1),c(2)+1;
% c(1)+1,c(2)];
% case 8
% sasiedzi=[ c(1)-1,c(2)-1; c(1)-1,c(2); c(1)-1,c(2)+1;
% c(1),c(2)-1; c(1),c(2)+1;
% c(1)+1,c(2)-1; c(1)+1,c(2); c(1)+1,c(2)+1];
case 26
sasiedzi=[ c(1)-1,c(2)+1,c(3)+1; c(1),c(2)+1,c(3)+1; c(1)+1,c(2)+1,c(3)+1;
c(1)-1,c(2)+1,c(3); c(1),c(2)+1,c(3); c(1)+1,c(2)+1,c(3);
c(1)-1,c(2)+1,c(3)-1; c(1),c(2)+1,c(3)-1; c(1)+1,c(2)+1,c(3)-1;
c(1)-1,c(2),c(3)+1; c(1),c(2),c(3)+1; c(1)+1,c(2),c(3)+1; %z=2 y=1
c(1)-1,c(2),c(3); c(1)+1,c(2),c(3); %z=1
c(1)-1,c(2),c(3)-1; c(1),c(2),c(3)-1; c(1)+1,c(2),c(3)-1; %z=0
c(1)-1,c(2)-1,c(3)+1; c(1),c(2)-1,c(3)+1; c(1)+1,c(2)-1,c(3)+1;
c(1)-1,c(2)-1,c(3); c(1),c(2)-1,c(3); c(1)+1,c(2)-1,c(3);
c(1)-1,c(2)-1,c(3)-1; c(1),c(2)-1,c(3)-1; c(1)+1,c(2)-1,c(3)-1];
% case 26
% sasiedzi=[ c(1)-1,c(2)-1,c(3)+1; c(1),c(2)-1,c(3)+1; c(1)+1,c(2)-1,c(3)+1;
% c(1)-1,c(2),c(3)+1; c(1),c(2),c(3)+1; c(1)+1,c(2),c(3)+1;
% c(1)-1,c(2)+1,c(3)+1; c(1),c(2)+1,c(3)+1; c(1)+1,c(2)+1,c(3)+1;
%
% c(1)-1,c(2)-1,c(3); c(1),c(2)-1,c(3); c(1)+1,c(2)-1,c(3); %z=2 y=1
% c(1)-1,c(2),c(3); c(1)+1,c(2),c(3); %z=1
% c(1)-1,c(2)+1,c(3); c(1),c(2)+1,c(3); c(1)+1,c(2)+1,c(3); %z=0
%
% c(1)-1,c(2)-1,c(3)-1; c(1),c(2)-1,c(3)-1; c(1)+1,c(2)-1,c(3)-1;
% c(1)-1,c(2),c(3)-1; c(1),c(2),c(3)-1; c(1)+1,c(2),c(3)-1;
% c(1)-1,c(2)+1,c(3)-1; c(1),c(2)+1,c(3)-1; c(1)+1,c(2)+1,c(3)-1];
end
% kontrola brzegów obrazu
ind_OK=find((sasiedzi(:,1)>0) & (sasiedzi(:,1)<=x) & (sasiedzi(:,2)>0) & (sasiedzi(:,2)<=y) & (sasiedzi(:,3)>0) & (sasiedzi(:,3)<=z));
sasiedzi=sasiedzi(ind_OK,:);