• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

src/H03-May-2022-10,4405,830

README.edges3DH A D28-Dec-20213.9 KiB10176

README_COMPILE_ZSSH A D28-Dec-20211,016 4533

pgm.5H A D28-Dec-20213.6 KiB10292

README.edges3D

1
2DESCRIPTION
3-----------
4
5This is a little package containing code
6for edges extraction based on the following
7publication (among others):
8 *   "Recursive filtering and edge tracking: two primary tools
9      for 3-D edge detection", O. Monga, R. Deriche,
10     G. Malandain and J.-P. Cocquerez, Image and Vision
11     Computing 4:9, pp 203-214, August 1991.
12 *   "Recursively Implementing The Gaussian and Its Derivatives",
13     R. Deriche, International Conference On Image Processing,
14     pp 263-267, Singapore, September 1992. Also INRIA research
15     report.
16
17It should be only use it for research purposes with no commercialization
18interests. You are not allowed to distribute it outside your laboratory.
19The authors thank you to mention them in forthcoming related publications.
20
21CONTENTS
22--------
23
24This package should contain the following directories
25
26src/: source and header files
27
28     recline.[c,h]: recursive filtering of a line (a 1D array)
29     recbuffer.[c,h]: recursive filtering of a buffer (a [1,2,3]D array)
30                      according that the filtering is separable
31     extrema.[c,h]: extraction of 2D or 3D edges
32                   main (most important) functions are:
33                   Extract_Gradient_Maxima_2D()
34                   Extract_Gradient_Maxima_3D()
35     convert.[c.h]: conversion between buffers of different types
36     connexe.[c.h]: connected components extraction, may be used for
37                    hysteresis thresholding, to count and label
38                    connected components. Design of other tools
39                    (as components containing seeds, or holes filling)
40                    should be really easy.
41     typedefs.h: some common defintions
42     iopnm.[c.h]: home made I/O routines for PBM/PGM/PPM raw images
43     test-edges.c: a test program to show how to use the main functions
44     test-edges-pnm.c: a test program to extract edges in PBM/PGM/PPM raw images
45     test-hyster-pnm.c: a test program to perform hysteresis thresholding
46                        in PBM/PGM/PPM raw images
47
48     images/: some test images *.data (data without headers) to be processed
49              with test-edges
50
51              square64x64.data: a 64^2 2D synthetical image (unsigned char)
52              disk64x64x64.data: a 64^3 3D synthetical image (unsigned char)
53              mri64x64x64.data: a 64^3 3D medical image (unsigned char)
54              *.extrema are the ground truth outputs (the ones I obtained at INRIA
55              with the same test program).
56              *.tmp are the output you will obtain.
57
58              greg-rmn.pgm, mona.pgm: two PBM/PGM/PPM raw images
59	                              (me and mona :-)
60             to be processed with test-edges-pnm, example:
61              %%% test-edges-pnm mona.pgm mona-edges.pgm
62              will generate edges of the image mona.pgm
63
64html/: a html documentation generated by c2man from the src/*.h files
65       in addition you will find index.html
66
67latex/: a tex documentation generated by c2man from the src/*.h files
68	in addition you will find main.tex main.dvi main.ps
69
70HOW TO USE IT
71-------------
72
73go into the src directory and compile the code:
74
75% cd src
76% make
77
78then (if everything is ok) you can reproduce the example from the web page
79     http://www-sop.inria.fr/epidaure/personnel/malandain/segment/edges.html
80i.e.
81
82% test-edges-pnm images/greg-rmn.pgm greg-rmn.ext
83
84test-edges-pnm works on 2D pgm image, you can use your favorite image
85format converter to convert your 2D images into that format.
86Otherwise, you may have a look on http://www.imagemagick.org/ or get xv
87to convert them manually (cf http://www.trilon.com/xv/),
88or you may try to build your own converter (see pgm.5 for the description
89for the format).
90
91This package has been designed to be used in some image processing library,
92thus one should look at test-edges.c to see how to call the different
93functions (especially in 3D).
94
95
96
97
98
99Gregoire Malandain
100gregoire.malandain@inria.fr
101

README_COMPILE_ZSS

1You have to change all malloc.h to stdlib.h in the .h and .c files
2Use also the slightly modified Makefile
3
4CFILES = connexe.c \
5	convert.c \
6	extrema.c \
7	iopnm.c \
8	recbuffer.c \
9	recline.c \
10	test-edges.c \
11	test-edges-pnm.c \
12	test-hyster-pnm.c
13
14COBJS = connexe.o \
15	convert.o \
16	extrema.o \
17	iopnm.o \
18	recbuffer.o \
19	recline.o  \
20	zcross.o
21
22EOBJS = test-edges.o \
23	test-edges-pnm.o \
24	test-hyster-pnm.o
25
26
27IFLAGS = -I. -I/usr/include -I/usr/X11R6/include -I/sw/include
28LFLAGS = -L. -L/usr/X11R6/lib -L/sw/lib
29
30.c.o:; cc -O $(IFLAGS) $(LFLAGS) -c $*.c;
31
32all : clean test-edges test-edges-pnm test-hyster-pnm
33
34clean :
35	rm -f $(COBJS) $(EOBJS) test-edges test-edges-pnm test-hyster-pnm
36
37test-edges : $(EOBJS) $(COBJS)
38	cc -O $(IFLAGS) $(LFLAGS) -o test-edges test-edges.o $(COBJS) -lm
39
40test-edges-pnm : $(EOBJS) $(COBJS)
41	cc -O $(IFLAGS) $(LFLAGS)  -o test-edges-pnm test-edges-pnm.o $(COBJS) -lm
42
43test-hyster-pnm : $(EOBJS) $(COBJS)
44	cc -O $(IFLAGS) $(LFLAGS)  -o test-hyster-pnm test-hyster-pnm.o $(COBJS) -lm
45