-
Notifications
You must be signed in to change notification settings - Fork 65
/
example2.cpp
46 lines (37 loc) · 1.08 KB
/
example2.cpp
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
#include "trace_skeleton.cpp"
int main(){
skeleton_tracer_t* T = new skeleton_tracer_t();
T->W = 64; // width of image
T->H = 64; // height of image
// allocate the input image
T->im = (unsigned char*)malloc(sizeof(unsigned char)*T->W*T->H);
// draw something interesting on the input image here...
T->thinning_zs(); // perform raster thinning
// prepare arguments to pass into the tracer
skeleton_tracer_t::arg_t* arg = (skeleton_tracer_t::arg_t*)malloc(sizeof(skeleton_tracer_t::arg_t));
arg->x = 0;
arg->y = 0;
arg->w = T->W;
arg->h = T->H;
arg->iter = 0;
// run the algorithm
skeleton_tracer_t::polyline_t* p = (skeleton_tracer_t::polyline_t*)T->trace_skeleton((void*)arg);
// print out points in every polyline
skeleton_tracer_t::polyline_t* it = p; //iterator
while(it){
skeleton_tracer_t::point_t* jt = it->head;
while(jt){
printf("%d,%d ",jt->x,jt->y);
jt = jt->next;
}
printf("\n");
it = it->next;
}
// clean up
free(arg);
free(T->im);
T->destroy_polylines(p);
T->destroy_rects();
delete T;
return 0;
}