OpendTect  6.6
conncomponents.h
Go to the documentation of this file.
1 #pragma once
2 
3 /*+
4 ________________________________________________________________________
5 
6  (C) dGB Beheer B.V.; (LICENSE) http://opendtect.org/OpendTect_license.txt
7  Author: Bo Zhang/Yuancheng Liu
8  Date: July 2012
9  RCS: $Id$
10 ________________________________________________________________________
11 
12 
13 -*/
14 
15 
16 #include "algomod.h"
17 #include "factory.h"
18 
19 
20 template <class T> class Array2D;
21 template <class T> class Array2DSlice;
22 template <class T> class Array3D;
23 
24 class TaskRunner;
25 
33 {
34 public:
35 
38 
39  void compute(TaskRunner* tr=0);
40 
41  int nrComponents() const;
42  const TypeSet<int>* getComponent(int compidx);
43  const Array2D<int>* getLabel() const { return label_; }
45  static void trimCompBranches(TypeSet<int>& comp,int sz1);
46  static void getCompSticks(TypeSet<int>& comp,int sz1,
47  int allowgapsz, int minsticksz,
48  TypeSet<TypeSet<int> >& sticks);
49  /*Will change comp, make copy before call this*/
50 
51  float overLapRate(int componentidx);
52  /*Minimum rate of all dimensions.*/
53 
54 protected:
55 
57  void setMark(Array2D<int>& r,int source,int newval);
58 
63 };
64 
65 
72 {
73 public:
74 
77 
78  void compute(TaskRunner* tr=0);
79 
80  struct VPos {
81  VPos() : i(-1),j(-1),k(-1) {}
82  int i;int j;int k;
83  };
84  int nrComponents() const;
85  const ObjectSet<VPos>* getComponent(int compidx);
86  /*<Comp size is sorted descending. */
87 
88 protected:
89 
91  const TypeSet<TypeSet<TypeSet<int> > >& comps,
92  int sliceidx,int compidx,
93  TypeSet<TypeSet<unsigned char> >& usedcomps,
94  ObjectSet<VPos>& rescomp);
95 
99 };
100 
101 
ConnComponents3D::~ConnComponents3D
~ConnComponents3D()
ConnComponents::nrComponents
int nrComponents() const
ConnComponents::sortedindex_
TypeSet< int > sortedindex_
Definition: conncomponents.h:62
ConnComponents3D::getComponent
const ObjectSet< VPos > * getComponent(int compidx)
ConnComponents3D::addToComponent
void addToComponent(const TypeSet< TypeSet< TypeSet< int > > > &comps, int sliceidx, int compidx, TypeSet< TypeSet< unsigned char > > &usedcomps, ObjectSet< VPos > &rescomp)
factory.h
ConnComponents::compute
void compute(TaskRunner *tr=0)
ObjectSet
Set of pointers to objects.
Definition: commontypes.h:31
ConnComponents3D::VPos
Definition: conncomponents.h:80
mExpClass
#define mExpClass(module)
Definition: commondefs.h:177
ConnComponents::setMark
void setMark(Array2D< int > &r, int source, int newval)
ConnComponents::label_
Array2D< int > * label_
Definition: conncomponents.h:60
ConnComponents::getLabel
const Array2D< int > * getLabel() const
Definition: conncomponents.h:43
ConnComponents::getComponent
const TypeSet< int > * getComponent(int compidx)
ConnComponents::ConnComponents
ConnComponents(const Array2D< bool > &)
ConnComponents3D::sortedindex_
TypeSet< int > sortedindex_
Definition: conncomponents.h:98
ConnComponents3D
Classify connected components of a binarized array 3D, components are sorted in size.
Definition: conncomponents.h:72
Array3D
Array3D ( Subclass of ArrayND ) is a three dimensional array.
Definition: arraynd.h:162
ConnComponents3D::compute
void compute(TaskRunner *tr=0)
ConnComponents3D::components_
ObjectSet< ObjectSet< VPos > > components_
Definition: conncomponents.h:97
TaskRunner
Class that can execute a task.
Definition: task.h:170
Array2DSlice
Subclass of Array2D and ArrayNDSliceBase.
Definition: arrayndslice.h:88
ConnComponents
Classify connected components of a binarized array 2D, components are sorted in size....
Definition: conncomponents.h:33
ConnComponents::getCompSticks
static void getCompSticks(TypeSet< int > &comp, int sz1, int allowgapsz, int minsticksz, TypeSet< TypeSet< int > > &sticks)
ConnComponents::~ConnComponents
~ConnComponents()
ConnComponents::trimCompBranches
static void trimCompBranches(TypeSet< int > &comp, int sz1)
ConnComponents3D::ConnComponents3D
ConnComponents3D(const Array3D< bool > &)
ConnComponents::components_
TypeSet< TypeSet< int > > components_
Definition: conncomponents.h:61
ConnComponents3D::nrComponents
int nrComponents() const
ConnComponents3D::VPos::VPos
VPos()
Definition: conncomponents.h:81
ConnComponents::trimCompBranches
void trimCompBranches(TypeSet< int > &comp)
ConnComponents::classifyMarks
void classifyMarks(Array2D< int > &mark)
ConnComponents::overLapRate
float overLapRate(int componentidx)
ConnComponents3D::input_
const Array3D< bool > & input_
Definition: conncomponents.h:96
ConnComponents::input_
const Array2D< bool > & input_
Definition: conncomponents.h:59
Array2D
Array2D ( Subclass of ArrayND ) is a two dimensional array.
Definition: arraynd.h:140
ConnComponents3D::VPos::k
int k
Definition: conncomponents.h:82
TypeSet< int >

Generated at for the OpendTect seismic interpretation project. Copyright (C): dGB Beheer B.V. 1995-2021