iRoCS Toolbox  1.1.0
mainFrame.hh
Go to the documentation of this file.
1 #ifndef L_T_C_MAINFRAME_HH
2 #define L_T_C_MAINFRAME_HH
3 
4 #ifdef HAVE_CONFIG_H
5 #include <config.hh>
6 #endif
7 
8 #include <QtGui/QMainWindow>
9 #include <QtGui/QWidget>
10 #include <QtGui/QLabel>
11 #include <QtGui/QScrollArea>
12 
13 #include "lviewermainwindow.hh"
14 
15 #include <vector>
16 #include <set>
17 
18 class QAction;
19 class QListWidget;
20 class QMenu;
21 class QTextEdit;
22 class QPushButton;
23 class QCheckBox;
24 class QSlider;
25 
26 class mainFrame : public QMainWindow
27 {
28  Q_OBJECT
29 
30 public:
31  mainFrame(QWidget *parent = 0);
32  ~mainFrame();
33 
34 private slots:
35  void s1Change(int);
36  void openc1();
37  void openc2();
38  void newc2();
39  void loadc2();
40  void loadCellFile();
41  void save();
42  void saveLabel();
43  void saveLink();
44  void about();
45  void myTest();
46 
47  void setJobToLabelling();
48  void setJobToFixing();
49  void setJobToLinking();
50  void merge();
51 
52  void undo();
53  void increaseST();
54  void decreaseST();
55 
56  void crop();
57  void equal();
58  void normRange();
59  void diffusion();
60  void normContrast();
61 
62  void answer(int, int, int, int);
63  void modifyLocalLabels(int, int, int, int);
64  void wheel(int);
65 
66 private:
67  void createActions();
68  void createMenus();
69  void createStatusBar();
70 
71  bool openFile(std::string, int c);
72  void startViewer();
73  void backup();
74 
75  template<typename T>
76  void view(T d, bool update = false);
77 
78  template<typename T>
79  void viewRef(T d, bool update = false);
80 
81  void closeEvent ( QCloseEvent * event );
82 
83  void initializeShowLabelling();
84  void initializeShowFixing();
85  void initializeShowLinking();
86  int trueLabel(int label);
87 
88 
89  QString lastOpenFolder;
90  bool flagInteraction;
91 
92  QTextEdit *textEdit;
93  QSlider* s1;
94  QSlider* s2;
95  QSlider* s3;
96  QLabel* v1;
97  QLabel* v2;
98  QLabel* v3;
99  QDockWidget * dock;
100 
101  lViewerMainWindow * lv;
102 
103  QMenu *fileMenu;
104  QMenu *editMenu;
105  QMenu *viewMenu;
106  QMenu *jobMenu;
107  QMenu *helpMenu;
108  QMenu *preprocessMenu;
109  QMenu *segmentationMenu;
110  QMenu *analysisMenu;
111  QMenu *batchMenu;
112 
113  QAction *undoAct;
114 
115  QAction *increaseSTAct;
116  QAction *decreaseSTAct;
117 
118  QAction *openChannel1;
119  QAction *openChannel2;
120  QAction *newChannel2;
121  QAction *loadChannel2;
122  QAction *loadcf;
123  QAction *saveAct;
124  QAction *saveLabelAct;
125  QAction *saveLinkAct;
126  QAction *quitAct;
127  QAction *aboutAct;
128 
129  QAction *cropAct;
130  QAction *equalAct;
131  QAction *normRangeAct;
132  QAction *diffusionAct;
133  QAction *normContrastAct;
134 
135  QAction *labelAct;
136  QAction *fixAct;
137  QAction *linkAct;
138  QAction *mergeAct;
139 
140 private:
141 
142  double c1,c2,t;
143  int currentLabel;
144  int sliceThick;
145 
146  enum JOB{ Labelling, Fixing, Linking};
147  int currentJob;
148 
149 private:
150 
151  std::string dataFileName;
152  std::string datasetName;
153  std::string outFileNameBase;
154  std::string outFileName;
155 
156  std::string currentDataName;
157 
158  //Parameters
159  int V;
160  int FlagNormalization;
161 
162  //diffusion
163  int PreDiffusion;
164  double kappa, delta_t_df;
165  int n_iters_df;
166 
167  //normContrast
168  double sigmaVar;
169  float epsilon;
170 
171  //watershed
172  double sigma_hessian;
173  double thresholdOnL1, compensationOnZ;
174  int morphSize, thresholdOnVolume;
175 
176  //levelset
177  double countour_weight, expansion_weight;
178  double lambda, delta_t_ls;
179  int n_iters_ls;
180 
181  //Data
182  atb::Array<float,3> data;
183  atb::Array<float,3> data2;
184 
185  blitz::Array<unsigned char,4> showData;
188 
189  atb::Array<float,3> backData;
190  blitz::Array<float,4> backDataMC;
191 
192  int lx,ly,lz, lxb, lyb, lzb;
193  int minX,maxX,minY,maxY,minZ,maxZ;
194 
195  atb::Array<float,3> image;
198 
199  blitz::TinyVector<double, 3> elSize;
200 
201  std::vector< blitz::TinyVector<unsigned char,3> > colorMap;
202 
203  int maxLabel;
204  int backgroundLabel;
205  blitz::Array<float,1> volumes;
206  blitz::Array<blitz::TinyVector<double,3>,1> centers;
207  blitz::Array<bool,1> validFlag;
208  blitz::Array<blitz::TinyVector<double,3>,1> normCenters;
209  blitz::Array<float,2> RD;
210 
211  blitz::Array<int,1> classLabels;
212  blitz::Array<int,1> classPredictions;
213 
214  blitz::Array<int,1> L_reassigned;
215 
216  blitz::Array<int,1> parent;
217  blitz::Array<int,1> child;
218  blitz::Array<int,1> fileNo;
219  blitz::Array<int,1> fileNo_reassigned;
220 
221  int currentFileNo;
222  int currentCell;
223  int head;
224 };
225 
226 
227 
228 #endif // TESTQT_H
mainFrame(QWidget *parent=0)