1: #ifndef CHAINCODE_H
2: #define CHAINCODE_H
3:
4: #include "linked_list.h"
5: #include "research.h"
6: #include "bool.h"
7: #include "pgm.h"
8:
9:
10: /*These constant values are the chain code directions*/
11: #define NONE -1
12: #define EAST 0
13: #define NORTHEAST 1
14: #define NORTH 2
15: #define NORTHWEST 3
16: #define WEST 4
17: #define SOUTHWEST 5
18: #define SOUTH 6
19: #define SOUTHEAST 7
20:
21: /*old typedefs*/
22: /*typedef struct chainCode* chain_t;
23: typedef struct chainCode
24: {
25: chain_t prev;
26: int code;
27: coord location;*/ /*absolute pixel location for starting point*/
28: /* chain_t next;
29: }chainCode;*/ /*This struct can be refered to by: struct chainCode or chainCode*/
30:
31:
32:
33:
34: /***********prototypes************************************************/
35:
36: int checkCode(list_info* list_pointers, int x_current, int y_current,
37: int x_check, int y_check, int dir);
38:
39: int checkThings(int x_check, int y_check, PGMImage *img);
40:
41: chain neighborhood_point(int x_coord, int y_coord, int dir);
42:
43: int chaincode(PGMImage *img, int x, int y, int dir, list_info *list_pointers);
44:
45: int alreadyFound(int initThreashFlag, int i, int j, list_info* found);
46:
47: void saveChainCode(list_info saveChain, int count);
48:
49: void free_chaincodes(list_info** aogccp);
50:
51: list_info* showChain(PGMImage *original, list_info **the_lists);
52:
53: #endif