vrcore  0.45
visuReal Messkern
 All Classes Files Functions Variables
Segmentation.h
1 #pragma once
2 
3 using namespace boost::numeric;
4 /*waehlt auf einfache Weise Saatpkte aus. Kein member, gehoert so nicht dazu.
5 return: 1: kontur war leer.*/
6 int makeSeeds ( std::vector< std::vector< cv::Vec2i >*>& seedsIn, const std::vector<cv::Point2d> &cont,
7  const int offsetX, const int offsetY, const cv::Mat& img);
8 
9 /*benoetigt GMRes, dies benoetigt ublas, verarbeitet grosse Matrizen.
10 Diese lassen sich im debug-Modus _nicht verarbeiten_!
11 Z.B. kommt er nicht in endlicher Zeit nicht aus der Residuumsberechnung r=Ax-b raus.
12 Kann mir das nur so erklaeren, dass Matrix-Vektor-Mult fuer sparse unter debug als nicht-sparse implementiert ist.*/
13 
14 class SegCoeff: public CoeffFunc
15 {
16 private:
17  //wichtig ist, dass das Ziel der Pointer nicht durch Parallelisierung veraendert wird.
18  //dafuer traegt class Segmentation sorge.
19  ublas::vector<double>* const
20  conductivitiesHorizPtr;
21  ublas::vector<double>* const
22  conductivitiesVertPtr;
23  const int cols;
24 public:
25  virtual double operator()( int i, int j) const ;
26 
27  SegCoeff( ublas::vector<double>* const
28  conductivitiesHoriz,
29  ublas::vector<double>* const
30  conductivitiesVert, const int cols);
31  ~SegCoeff(void);
32  };
33 
35 {
36 private:
37  const cv::Mat& img;
38  cv::Mat& segmentedImg;
39  const std::vector< std::vector< cv::Vec2i >*>& seeds;
40 
43  ublas::vector<double>
44  conductivitiesHoriz;
45  ublas::vector<double>
46  conductivitiesVert;
47 
48  void mkConductivities();
49 public:
50  int operator()() ;
51  Segmentation( cv::Mat& segmentedImg, const cv::Mat& img,
52  const std::vector< std::vector< cv::Vec2i >*>& seeds);
53  ~Segmentation(void);
54 };
55 
Definition: Segmentation.h:14
Definition: CoeffFunc.h:2
Definition: Segmentation.h:34