3 void getLSODTarget(int t
, int *Height
, int *Width
,
4 int *offset_x
, int *offset_y
);
5 int readTarget(int k
, int w
, int h
, int x
, int y
);
6 int gradient(int a1
, int a2
, int a3
, int a4
, int a5
, int a6
);
8 int vertSum(int in_1
, int in_2
);
9 void writeHist(int k
, int w
, int pp
);
14 int offset_x
,offset_y
;
16 static int image
[1000][1000];
17 static int vertEdges
[1000][1000];
18 static int av
[1000][1000];
19 static int vsum
[1000];
20 static int TH
[TARGETS
];
21 static int TW
[TARGETS
];
22 #pragma value_bounds TH 10 300
23 #pragma value_bounds TW 10 350
26 for (int k
= 0; k
< TARGETS
; k
++) {
27 getLSODTarget(k
, &TH
[k
], &TW
[k
], &offset_x
, &offset_y
);
29 for (int j
= 0; j
< TH
[k
]; j
++)
30 for (int i
= 0; i
< TW
[k
]; i
++)
31 image
[j
][i
] = readTarget(k
, i
, j
, offset_x
, offset_y
);
33 for (int i
= 0; i
< TW
[k
]; i
++)
36 for (int j
= 1; j
< TH
[k
] - 1; j
++) {
37 for (int i
= 1; i
< TW
[k
] - 1; i
++) {
38 vertEdges
[j
][i
] = gradient(image
[j
-1][i
-1], image
[j
][i
-1],
39 image
[j
+1][i
-1], image
[j
-1][i
+1],
40 image
[j
][i
+1], image
[j
+1][i
+1]);
41 av
[j
][i
] = absVal(vertEdges
[j
][i
]);
42 vsum
[i
] = vertSum(vsum
[i
], av
[j
][i
]);
46 for (int i
= 1; i
< TW
[k
] - 1; i
++)
47 writeHist(k
, TW
[k
], vsum
[i
]);