#include "sdet_contour.h"
#include <vcl_iostream.h>
#include <vcl_cstdlib.h>
#include <vcl_vector.h>
#include <vcl_cmath.h>
#include <vcl_algorithm.h>
#include <vul/vul_timer.h>
#include <vxl_config.h>
#include <vnl/vnl_math.h>
#include <vdgl/vdgl_digital_curve_sptr.h>
#include <vdgl/vdgl_digital_curve.h>
#include <vdgl/vdgl_edgel_chain_sptr.h>
#include <vdgl/vdgl_edgel_chain.h>
#include <vdgl/vdgl_interpolator.h>
#include <vdgl/vdgl_interpolator_linear.h>
#include <vtol/vtol_vertex_2d.h>
#include <vtol/vtol_edge_2d.h>
#include <btol/btol_vertex_algs.h>
#include <btol/btol_edge_algs.h>
#include <bdgl/bdgl_curve_algs.h>
#include <gevd/gevd_bufferxy.h>
#include <gevd/gevd_pixel.h>
Go to the source code of this file.
Classes | |
struct | sdet_contour_edge |
A container to support sorting of edge lengths. More... | |
Defines | |
#define | WARN(x, y) |
Functions | |
void | ErasePixel (vcl_vector< int > &xloc, vcl_vector< int > &yloc) |
Delete the last pixel added to iloc and jloc. | |
void | fill_cycle_gap (vdgl_edgel_chain_sptr const &ec) |
vtol_vertex_2d_sptr | get_vertex_at_index (vtol_edge_2d_sptr &e, int index) |
bool | find_vertex (vtol_vertex_2d_sptr &v, vcl_vector< vtol_vertex_2d_sptr > &vertices) |
bool | find_edge (vtol_edge_2d_sptr &e, vcl_vector< vtol_edge_2d_sptr > &edges) |
void | print_edge_lookup_table (vcl_vector< vtol_edge_2d_sptr > &edges) |
vtol_edge_2d_sptr | DanglingEdge (vtol_vertex_2d_sptr const &v) |
If there is only one edge connected to v then return it, otherwise return null. | |
vtol_edge_2d_sptr | DigitalEdge (vtol_vertex_2d_sptr const &vs, vtol_vertex_2d_sptr const &ve) |
Generate an Edge with a vdgl_digital_curve representing a straight line between the specified vertices. | |
void | EqualizeElements (double *elmts, int n, double v1, double v2) |
Convolve array elements with [1 0 1]/2, replacing center pixel by average of 2 neighbors. | |
Variables | |
const int | INVALID = -1 |
const vxl_byte | TWOPI = 8 |
const vxl_byte | HALFPI = 2 |
const int | DIS [] |
const int | DJS [] |
const int | RIS [] |
const int | RJS [] |
const int | RNS [] = { 4, 8, 12, 20, 24, 28, 36, 44, 48} |
const float | RGS [] |
const int | MINLENGTH = 3 |
const int | FRAME = 4 |
Definition in file sdet_contour.cxx.
#define WARN | ( | x, | |
y | |||
) |
vcl_cerr << "Warning: edgel "<<i<<" is at ("<<x<<','<<y\ <<") which is outside of edge map of size "\ <<edgeMap->rows()<<'x'<<edgeMap->cols()<<'\n'
vtol_edge_2d_sptr DanglingEdge | ( | vtol_vertex_2d_sptr const & | v | ) |
If there is only one edge connected to v then return it, otherwise return null.
Definition at line 1335 of file sdet_contour.cxx.
vtol_edge_2d_sptr DigitalEdge | ( | vtol_vertex_2d_sptr const & | vs, |
vtol_vertex_2d_sptr const & | ve | ||
) |
Generate an Edge with a vdgl_digital_curve representing a straight line between the specified vertices.
Definition at line 2075 of file sdet_contour.cxx.
void EqualizeElements | ( | double * | elmts, |
int | n, | ||
double | v1, | ||
double | v2 | ||
) |
Convolve array elements with [1 0 1]/2, replacing center pixel by average of 2 neighbors.
This will make the spacing between pixels almost equal and prune away small zig-zags.
Definition at line 2411 of file sdet_contour.cxx.
void ErasePixel | ( | vcl_vector< int > & | xloc, |
vcl_vector< int > & | yloc | ||
) |
Delete the last pixel added to iloc and jloc.
Definition at line 291 of file sdet_contour.cxx.
void fill_cycle_gap | ( | vdgl_edgel_chain_sptr const & | ec | ) |
Definition at line 809 of file sdet_contour.cxx.
bool find_edge | ( | vtol_edge_2d_sptr & | e, |
vcl_vector< vtol_edge_2d_sptr > & | edges | ||
) |
Definition at line 983 of file sdet_contour.cxx.
bool find_vertex | ( | vtol_vertex_2d_sptr & | v, |
vcl_vector< vtol_vertex_2d_sptr > & | vertices | ||
) |
Definition at line 973 of file sdet_contour.cxx.
vtol_vertex_2d_sptr get_vertex_at_index | ( | vtol_edge_2d_sptr & | e, |
int | index | ||
) |
Definition at line 963 of file sdet_contour.cxx.
void print_edge_lookup_table | ( | vcl_vector< vtol_edge_2d_sptr > & | edges | ) |
Definition at line 993 of file sdet_contour.cxx.
const int DIS[] |
{ 1, 1, 0,-1,-1,-1, 0, 1, 1, 1, 0,-1,-1,-1, 0, 1, 1, 1, 0,-1,-1,-1, 0, 1}
Definition at line 41 of file sdet_contour.cxx.
const int DJS[] |
{ 0, 1, 1, 1, 0,-1,-1,-1, 0, 1, 1, 1, 0,-1,-1,-1, 0, 1, 1, 1, 0,-1,-1,-1}
Definition at line 44 of file sdet_contour.cxx.
const int FRAME = 4 |
Definition at line 79 of file sdet_contour.cxx.
const vxl_byte HALFPI = 2 |
Definition at line 39 of file sdet_contour.cxx.
const int INVALID = -1 |
Definition at line 35 of file sdet_contour.cxx.
const int MINLENGTH = 3 |
Definition at line 78 of file sdet_contour.cxx.
const float RGS[] |
{ 1.f, 1.414213f, 2.f, 2.236067f, 2.828427f, 3.f, 3.162277f, 3.605551f, 4.f}
Definition at line 74 of file sdet_contour.cxx.
const int RIS[] |
{ 1, 0,-1, 0, 1,-1,-1, 1, 2, 0,-2, 0, 2, 1,-1,-2, -2,-1, 1, 2, 2,-2,-2, 2, 3, 0,-3, 0, 3, 1,-1,-3, -3,-1, 1, 3, 3, 2,-2,-3, -3,-2, 2, 3, 4, 0,-4, 0}
Definition at line 49 of file sdet_contour.cxx.
const int RJS[] |
{ 0, 1, 0,-1, 1, 1,-1,-1, 0, 2, 0,-2, 1, 2, 2, 1, -1,-2,-2,-1, 2, 2,-2,-2, 0, 3, 0,-3, 1, 3, 3, 1, -1,-3,-3,-1, 2, 3, 3, 2, -2,-3,-3,-2, 0, 4, 0,-4}
Definition at line 61 of file sdet_contour.cxx.
const int RNS[] = { 4, 8, 12, 20, 24, 28, 36, 44, 48} |
Definition at line 73 of file sdet_contour.cxx.
const vxl_byte TWOPI = 8 |
Definition at line 39 of file sdet_contour.cxx.