NifTK  16.4.1 - 0798f20
CMIC's Translational Medical Imaging Platform
mitkEvaluateIntrinsicParametersOnNumberOfFrames.h
Go to the documentation of this file.
1 /*=============================================================================
2 
3  NifTK: A software platform for medical image computing.
4 
5  Copyright (c) University College London (UCL). All rights reserved.
6 
7  This software is distributed WITHOUT ANY WARRANTY; without even
8  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
9  PURPOSE.
10 
11  See LICENSE.txt in the top level directory for details.
12 
13 =============================================================================*/
14 
15 #ifndef mitkEvaluateIntrinsicParametersOnNumberOfFrames_h
16 #define mitkEvaluateIntrinsicParametersOnNumberOfFrames_h
17 
18 #include "niftkOpenCVExports.h"
19 #include <string>
20 #include <itkObject.h>
21 #include <itkObjectFactory.h>
22 #include <itkObjectFactoryBase.h>
23 #include <mitkCommon.h>
24 #include <mitkPoint.h>
25 #include <mitkVector.h>
26 #include <cv.h>
27 
28 namespace mitk {
29 
35 {
36 
37 public:
38 
39  mitkClassMacroItkParent(EvaluateIntrinsicParametersOnNumberOfFrames, itk::Object)
41 
42  void InitialiseOutputDirectory();
43  void InitialiseVideo();
44  void RunExperiment();
45  void Report();
46 
47  itkSetMacro(InputDirectory, std::string);
48  itkSetMacro(InputMatrixDirectory, std::string);
49  itkSetMacro(OutputDirectory, std::string);
50 
51  itkSetMacro(FramesToUse, unsigned int);
52  itkSetMacro(AbsTrackerTimingError,long long);
53 
54  itkGetMacro(VideoInitialised, bool);
55  itkGetMacro(TrackingDataInitialised, bool);
56  itkSetMacro(SwapVideoChannels, bool);
57 
58  itkSetMacro(NumberCornersWidth, unsigned int);
59  itkSetMacro(NumberCornersHeight, unsigned int);
60  itkSetMacro(SquareSizeInMillimetres, double);
61  itkSetMacro(PixelScaleFactor, mitk::Point2D);
62 
63  itkSetMacro(OptimiseIntrinsics, bool);
64 
65 
66 protected:
67 
70 
72  EvaluateIntrinsicParametersOnNumberOfFrames& operator=(const EvaluateIntrinsicParametersOnNumberOfFrames&); // Purposefully not implemented.
73 
74 private:
75 
76  void LoadVideoData(std::string filename);
77  void ReadTimeStampFromLogFile();
78  void MatchingVideoFramesToTrackingMatrix();
79  void ComputeCamaraIntrinsicParameters(cv::Size &imageSize);
80 
81  void PairewiseFiles(std::vector<std::string> &fnvec_limg,
82  std::vector<std::string> &fnvec_rimg,
83  std::vector<std::string> &fnvec_lobj,
84  std::vector<std::string> &fnvec_robj,
85  std::vector<std::string> &fnvec_mtx);
86  int Read2DPointsFromFile(const char *fn, std::vector<float*> &ptvec);
87  int Read3DPointsFromFile(const char *fn, std::vector<float*> &ptvec);
88  void ReadIntrinsicAndDistortionFromFile(const char *fn,
89  std::vector<float*> &intrinsicvec,
90  std::vector<float*> &distortionvec);
91 
92  std::string m_InputDirectory;
93  std::string m_InputMatrixDirectory;
94  std::string m_OutputDirectory;
95  bool m_SwapVideoChannels;
96  unsigned int m_FramesToUse; //target frames to use
97 
98  bool m_VideoInitialised;
99  bool m_TrackingDataInitialised;
100  long long m_AbsTrackerTimingError;
101 
102  unsigned int m_NumberCornersWidth;
103  unsigned int m_NumberCornersHeight;
104  double m_SquareSizeInMillimetres;
105  mitk::Point2D m_PixelScaleFactor;
106 
107  CvMat* m_IntrinsicMatrixLeft;
108  CvMat* m_IntrinsicMatrixRight;
109  CvMat* m_DistortionCoefficientsLeft;
110  CvMat* m_DistortionCoefficientsRight;
111 
112  bool m_OptimiseIntrinsics;
113  bool m_OptimiseRightToLeft;
114  bool m_PostProcessExtrinsicsAndR2L;
115  bool m_PostProcessR2LThenExtrinsics;
116 
117  int m_NumberOfFrames;
118  std::vector<unsigned long long> m_TimeStamps;
119  std::vector<unsigned long long> m_MatchedVideoFrames;
120  //std::vector<std::string> m_MatchedTrackingMatrix;
121  std::vector<unsigned long long> m_MatchedTrackingMatrix;
122 
123  std::string m_LeftDirectory;
124  std::string m_RightDirectory;
125 
126 }; // end class
127 
128 } // end namespace
129 
130 #endif
Definition: mitkEvaluateIntrinsicParametersOnNumberOfFrames.h:34
Definition: ReceptorMemberCommandTest.cxx:25
#define NIFTKOPENCV_EXPORT
Definition: niftkSequentialCpuQds.h:27
GLsizei const GLcharARB ** string
Definition: glew.h:5194
GLint GLenum GLsizei GLint GLsizei imageSize
Definition: glew.h:1363