-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathstd.fb
54 lines (49 loc) · 809 Bytes
/
std.fb
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
func bitwise(matrix m, matrix n) {
double k =0.0;
int i = 0;
int j = 0;
for (i = 0; i<3; i=i+1){
for (j = 0; j<3; j=j+1){
k = k + m[i,j]*n[i,j];
}
}
return k;
}
func filter(matrix m, matrix n) {
int a;
int b;
int c;
int d;
a,b = size(m);
c,d = size(n);
if (c == 3) {
matrix t = zeros(a+2,b+2);
matrix r = zeros(a,b);
t[1:a,1:b] = m[0:a-1,0:b-1];
int i = 0;
int j = 0;
for (i = 0; i<a; i=i+1){
for (j = 0; j<b; j=j+1){
double k = 0.0;
k = bitwise(t[i:i+2,j:j+2],n);
r[i,j] = k;
}
}
return r;
}
if (c == 5) {
matrix t = zeros(a+4,b+4);
matrix r = zeros(a,b);
t[2:a+1,2:b+1] = m[0:a-1,0:b-1];
int i = 0;
int j = 0;
for (i = 0; i<a; i=i+1){
for (j = 0; j<b; j=j+1){
double k = 0.0;
k = bitwise(t[i:i+4,j:j+4],n);
r[i,j] = k;
}
}
return r;
}
}