Particle Identification and Tracking
iden.h
Go to the documentation of this file.
1 //Copyright 2008,2009,2012 Thomas A Caswell
2 //tcaswell@uchicago.edu
3 //http://jfi.uchicago.edu/~tcaswell
4 //
5 //This program is free software; you can redistribute it and/or modify
6 //it under the terms of the GNU General Public License as published by
7 //the Free Software Foundation; either version 3 of the License, or (at
8 //your option) any later version.
9 //
10 //This program is distributed in the hope that it will be useful, but
11 //WITHOUT ANY WARRANTY; without even the implied warranty of
12 //MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 //General Public License for more details.
14 //
15 //You should have received a copy of the GNU General Public License
16 //along with this program; if not, see <http://www.gnu.org/licenses>.
17 //
18 //Additional permission under GNU GPL version 3 section 7
19 //
20 //If you modify this Program, or any covered work, by linking or
21 //combining it with MATLAB (or a modified version of that library),
22 //containing parts covered by the terms of MATLAB User License, the
23 //licensors of this Program grant you additional permission to convey
24 //the resulting work.
25 //
26 //If you modify this Program, or any covered work, by linking or
27 //combining it with IPP (or a modified version of that library),
28 //containing parts covered by the terms of End User License Agreement
29 //for the Intel(R) Software Development Products, the licensors of
30 //this Program grant you additional permission to convey the resulting
31 //work.
32 //
33 //If you modify this Program, or any covered work, by linking or
34 //combining it with FreeImage (or a modified version of that library),
35 //containing parts covered by the terms of End User License Agreement
36 //for FreeImage Public License, the licensors of
37 //this Program grant you additional permission to convey the resulting
38 //work.
39 
40 
41 #ifndef IDEN_OBJ
42 #define IDEN_OBJ
43 #include <string>
44 
45 #include "md_store.h"
46 
47 namespace tracking
48 {
49 class hash_case;
50 class Master_box;
51 
52 }
53 
54 namespace utilities
55 {
56 class Md_store;
57 }
58 
59 namespace iden
60 {
61 class Wrapper_i_plu;
62 class Image_base;
63 class MD_parser;
64 class Image2D;
65 
66 
70 class Iden
71 {
72 public:
74  {
75  }; // needs arguements
76  ~Iden(){};
77 
81  void set_image_src(Image_base * image);
82 
83  void set_md_parser(MD_parser * parser);
84 
88  void set_params(const utilities::Md_store& param_in);
89 
93  Wrapper_i_plu * fill_wrapper(unsigned int frames=0,unsigned int start=0);
94 
98  Wrapper_i_plu * fill_wrapper_avg(unsigned int frames=0,unsigned int start=0);
99 
100  void process_frame(const Image2D & img_in,
101  unsigned int frame_number,
102  const utilities::Md_store * md_store_in,
103  Wrapper_i_plu & wrapper_out) const;
104  void process_frames(const Image_base & imgs,
105  unsigned int start_frame,
106  unsigned int frames,
107  Wrapper_i_plu & wrapper_out) const;
108 
109  void process_frames_avg(const Image_base & imgs,
110  unsigned int avg_count,
111  unsigned int start_frame,
112  unsigned int frames,
113  Wrapper_i_plu & wrapper_out) const;
114 private:
119 
120 
125 
130 
131 };
132 
133 
134 
135 
136 }
137 
138 #endif