Definition in file gevd_contour.cxx.
#include "gevd_contour.h"
#include <vcl_cstdlib.h>
#include <vcl_vector.h>
#include <vcl_algorithm.h>
#include <vxl_config.h>
#include <vnl/vnl_math.h>
#include <vdgl/vdgl_digital_curve.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 <gevd/gevd_pixel.h>
Go to the source code of this file.
Functions | |
| bool | DetectJunction (vtol_vertex_2d &end, int &index, vtol_edge_2d_sptr &weaker, vtol_edge_2d_sptr &stronger, const int maxSpiral, const gevd_bufferxy &edgels, vbl_array_2d< vtol_edge_2d_sptr > &edgeMap) |
| Check that end point of a weak contour touches another stronger contour at an internal pixel. | |
| void | BreakCycle (vtol_vertex_2d &junction, const int index, vtol_edge_2d &stronger, vtol_edge_2d_sptr &split, vbl_array_2d< vtol_edge_2d_sptr > &edgeMap, vbl_array_2d< vtol_vertex_2d_sptr > &vertexMap) |
| Break the cycle at given index, and create new cycle from/to and not including index pixel. | |
| void | BreakChain (vtol_vertex_2d &junction, const int index, vtol_edge_2d &stronger, vtol_edge_2d_sptr &longer, vtol_edge_2d_sptr &shorter, vbl_array_2d< vtol_edge_2d_sptr > &edgeMap, vbl_array_2d< vtol_vertex_2d_sptr > &vertexMap) |
| Break the edge at given index, and create two subchains from it. | |
| void | LoopChain (vtol_vertex_2d &junction, const int index, vtol_edge_2d &chain, vtol_edge_2d_sptr &straight, vtol_edge_2d_sptr &curled, vbl_array_2d< vtol_edge_2d_sptr > &edgeMap, vbl_array_2d< vtol_vertex_2d_sptr > &vertexMap) |
| Break the chain at given index, and create a loop. | |
| int | NumConnectedRays (vtol_vertex_2d &v) |
| Find number of rays connected to a vertex. | |
| vtol_vertex_2d_sptr | DetectTouch (const vtol_vertex_2d &end, const int maxSpiral, vbl_array_2d< vtol_vertex_2d_sptr > &vertexMap) |
| Detect touching another junction or end point, from an end point of a dangling chain. | |
| vtol_edge_2d_sptr | DanglingEdge (vtol_vertex_2d &v) |
| Find dangling edges connected to vertex. | |
| void | MergeEndPtsOfChain (vtol_vertex_2d &endpt, vtol_vertex_2d &other, vtol_edge_2d &common, vbl_array_2d< vtol_edge_2d_sptr > &edgeMap, vbl_array_2d< vtol_vertex_2d_sptr > &vertexMap) |
| Merge 2 end points of a same chain. | |
| void | MergeEndPtTouchingEndPt (vtol_vertex_2d &end1, vtol_vertex_2d &end2, vtol_edge_2d_sptr &merge, vtol_edge_2d_sptr &longer, vtol_edge_2d_sptr &shorter, vbl_array_2d< vtol_edge_2d_sptr > &edgeMap, vbl_array_2d< vtol_vertex_2d_sptr > &vertexMap) |
| Merge 2 touching chains into 1, deleting the 2 touching end points and their chains. | |
| void | MergeEndPtTouchingJunction (vtol_vertex_2d &endpt, vtol_vertex_2d &junction, vbl_array_2d< vtol_edge_2d_sptr > &edgeMap, vbl_array_2d< vtol_vertex_2d_sptr > &vertexMap) |
| Merge an end point into a touching junction. | |
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 |
|
||||||||||||||||||||||||||||||||
|
Break the edge at given index, and create two subchains from it. Update the chain map accordingly. Definition at line 624 of file gevd_contour.cxx. |
|
||||||||||||||||||||||||||||
|
Break the cycle at given index, and create new cycle from/to and not including index pixel. Update the chain map accordingly. Definition at line 546 of file gevd_contour.cxx. |
|
|
Find dangling edges connected to vertex.
Definition at line 859 of file gevd_contour.cxx. |
|
||||||||||||||||||||||||||||||||
|
Check that end point of a weak contour touches another stronger contour at an internal pixel. Localize the junction to pixel accuracy by searching for shortest distance from end point to chain. Gaussian smoothing can put local maximum change in filter response 1 pixel away from this junction location. Update junction map. Definition at line 427 of file gevd_contour.cxx. |
|
||||||||||||||||
|
Detect touching another junction or end point, from an end point of a dangling chain.
Definition at line 835 of file gevd_contour.cxx. |
|
||||||||||||||||||||||||||||||||
|
Break the chain at given index, and create a loop. Update the chain map accordingly. Definition at line 707 of file gevd_contour.cxx. |
|
||||||||||||||||||||||||
|
Merge 2 end points of a same chain. Update global maps. Definition at line 873 of file gevd_contour.cxx. |
|
||||||||||||||||||||||||||||||||
|
Merge 2 touching chains into 1, deleting the 2 touching end points and their chains. Smooth away short kinks is delayed for later. Update global maps. Definition at line 889 of file gevd_contour.cxx. |
|
||||||||||||||||||||
|
Merge an end point into a touching junction. Update global maps. Definition at line 978 of file gevd_contour.cxx. |
|
|
Find number of rays connected to a vertex.
Definition at line 820 of file gevd_contour.cxx. |
|
|
Initial value: { 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 28 of file gevd_contour.cxx. |
|
|
Initial value: { 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 31 of file gevd_contour.cxx. |
|
|
Definition at line 60 of file gevd_contour.cxx. |
|
|
Definition at line 26 of file gevd_contour.cxx. |
|
|
Definition at line 22 of file gevd_contour.cxx. |
|
|
Definition at line 59 of file gevd_contour.cxx. |
|
|
Initial value: { 1.f, 1.414213f, 2.f, 2.236067f, 2.828427f,
3.f, 3.162277f, 3.605551f, 4.f}
Definition at line 55 of file gevd_contour.cxx. |
|
|
Initial value: { 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 36 of file gevd_contour.cxx. |
|
|
Initial value: { 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 45 of file gevd_contour.cxx. |
|
|
Definition at line 54 of file gevd_contour.cxx. |
|
|
Definition at line 26 of file gevd_contour.cxx. |
1.4.4