EDGE
Edge Detection
EDGE
is a FORTRAN90 library which
defines some test functions in 1D, 2D and 3D for the detection of edges,
and uses GNUPLOT to display images of the functions.
In particular, we look at some simple functional examples in 1D,
2D, and 3D, that is, situations in which a formula is supplied so
that the value of a scalar quantity f() can be determined at any
point in the region. We are interested in examples in which the
quantity f() exhibits jumps. that is, sudden, sharp changes in value.
Licensing:
The computer code and data files made available on this web page
are distributed under
the GNU LGPL license.
Languages:
EDGE is available in
a C version and
a C++ version and
a FORTRAN77 version and
a FORTRAN90 version and
a MATLAB version.
Related Data and Programs:
GNUPLOT,
FORTRAN90 programs which
illustrate how a program can write data and command files
so that gnuplot can create plots of the program results.
IMAGE_EDGE,
a FORTRAN90 library which
demonstrates a simple procedure for edge detection in images.
Reference:

Rick Archibald, Anne Gelb, Jungho Yoon,
Polynomial fitting for edge detection in irregularly sampled signals
and images,
SIAM Journal on Numerical Analysis,
Volume 43, Number 1, 2006, pages 259279.

Rick Archibald, Anne Gelb, Jungho Yoon,
Determining the location of discontinuities in the derivatives
of functions,
Applied Numerical Mathematics,
Volume 58, 2008, pages 577592.

Larry Shepp, Ben Logan,
The Fourier reconstruction of a head section,
IEEE Transactions on Nuclear Science,
Volume NS21, June 1974, pages 2143.

Larry Shepp,
Computerized tomography and nuclear magnetic resonance,
Journal of Computer Assisted Tomography,
Volume 4, Number 1, February 1980, pages 94107.
Source Code:
Examples and Tests:

edge_prb.f90,
calls all the tests.

edge_prb_output.txt,
the output file.

fx1_data.txt,
a data file for fx1.

fx1_commands.txt,
GNUPLOT commands that can create an image of fx1.

fx1.png,
an image of fx1.

fx2_data.txt,
a data file for fx2.

fx2_commands.txt,
GNUPLOT commands that can create an image of fx2.

fx2.png,
an image of fx2.

fx3_data.txt,
a data file for fx3.

fx3_commands.txt,
GNUPLOT commands that can create an image of fx3.

fx3.png,
an image of fx3.

fx4_data.txt,
a data file for fx4.

fx4_commands.txt,
GNUPLOT commands that can create an image of fx4.

fx4.png,
an image of fx4.

fx5_data.txt,
a data file for fx5.

fx5_commands.txt,
GNUPLOT commands that can create an image of fx5.

fx5.png,
an image of fx5.

fx6_data.txt,
a data file for fx6.

fx6_commands.txt,
GNUPLOT commands that can create an image of fx6.

fx6.png,
an image of fx6.

fx7_data.txt,
a data file for fx7.

fx7_commands.txt,
GNUPLOT commands that can create an image of fx7.

fx7.png,
an image of fx7.

fxy1_data.txt,
a data file for fxy1.

fxy1_commands.txt,
GNUPLOT commands that can create an image of fxy1.

fxy1.png,
an image of fxy1.

fxy2_data.txt,
a data file for fxy2.

fxy2_commands.txt,
GNUPLOT commands that can create an image of fxy2.

fxy2.png,
an image of fxy2.

fxy3_data.txt,
a data file for fxy3.

fxy3_commands.txt,
GNUPLOT commands that can create an image of fxy3.

fxy3.png,
an image of fxy3.

fxy4_data.txt,
a data file for fxy4.

fxy4_commands.txt,
GNUPLOT commands that can create an image of fxy4.

fxy4.png,
an image of fxy4.

fxy5_data.txt,
a data file for fxy5.

fxy5_commands.txt,
GNUPLOT commands that can create an image of fxy5.

fxy5.png,
an image of fxy5.

fxyz1_x_data.txt,
a data file for fxyz1 with x fixed at 0.

fxyz1_x_commands.txt,
GNUPLOT commands that can create an image of fxyz1_x.

fxyz1_x.png,
an image of fxyz1_x.

fxyz1_y_data.txt,
a data file for fxyz1 with y fixed at 0.

fxyz1_y_commands.txt,
GNUPLOT commands that can create an image of fxyz1_y.

fxyz1_y.png,
an image of fxyz1_y.

fxyz1_z_data.txt,
a data file for fxyz1 with z fixed at 0.1.

fxyz1_z_commands.txt,
GNUPLOT commands that can create an image of fxyz1_z.

fxyz1_z.png,
an image of fxyz1_z.
List of Routines:

FX1 is the 1D example #1.

FX2 is the 1D example #2.

FX3 is the 1D example #3.

FX4 is the 1D example #4.

FX5 is the 1D example #5.

FX6 is the 1D example #6.

FX7 is the 1D example #7.

FXY1 is the 2D example #1.

FXY2 is the 2D example #2.

FXY3 is the 2D example #3.

FXY4 is the 2D example #4.

FXY5 is the 2D example #5.

FXYZ1 is the 3D example #1.

GET_UNIT returns a free FORTRAN unit number.

R8VEC_COPY copies an R8VEC.

R8VEC_LINSPACE creates a vector of linearly spaced values.

R8VEC_UNIFORM_AB returns a scaled pseudorandom R8VEC.

TIMESTAMP prints the current YMDHMS date as a time stamp.
You can go up one level to
the FORTRAN90 source codes.
Last revised on 22 September 2014.