vrcore  0.45
visuReal Messkern
 All Classes Files Functions Variables
PhotoParams.h
Go to the documentation of this file.
1 #ifndef PHOTO_PARAMS_H
2 #define PHOTO_PARAMS_H
3 
4 namespace vr {
5 
6 enum ComputationModel {
7  COMP_MODEL_FIRST = 0,
8  COMP_MODEL_CURRENT = 1,
9  COMP_MODEL_NEXT = 2
10 };
11 
16 bool legacyCameraIntrinsics(const ComputationModel);
17 
18 }
19 
28 {
29  ExposureArrangement exposureArrangement_;
30 public:
31  bool useCameraMatrix;
32  double approximateDistance;
33 /*focalDist: Gemeint ist der Abstand Kameranull - Bildebene. Die
34 Nomenklatur ist gefährlich, weil dies manchmal als Synonym für die Brennweite
35 eines Linsensystems verwendet wird, unsere "focal distance" ist was anderes,
36 insb. größer . Wir haben diesen Namen, weil Hartley/Zisserman ihn nehmen.
37 Hier haben wir dafür für alle Bilder den selben wert angenommen, und zwar einen,
38 den wir per Hand aus 20cm Objektbreite, die bei drei Metern Objektabstand auf
39 Chipbreite abgebildet werden, per Strahlensatz berechnet haben.
40 Als Notlösung würde ich aus der Abbildungsgleichung
41 1/b + 1/g = 1/f
42 wobei b Abst Bild-KameraNull u g Gegenstand-Kameranull u f die Brennweite der
43 Linse ist, b unter annahme eines höchst approximativen g gewinnen. f kriegt
44 man ja aus der kamera, ist normal konstant, wenn kein Zoom dran ist.*/
45  double focalDist;
46  cv::Vec2d pixelSize; // mm horizontal/vertikal
47  /* opticalAxis: "Durchtrittspunkt der optische Achse im Bild"
48 braucht man zur Berechnung der 3d-Kamera-Koordinaten aus den
49 Bildkoordinaten. Siehe dazu die Funktion Engine::transform (scheissname, ich
50 weiss...) Dort wird x-u-y-Achse getauscht u so verschoben, dass die Chipmitte die Null
51 ist.*/
52  cv::Vec2d opticalAxis;
53  void init(ExposureArrangement exposureArrangement, vr::ComputationModel computationModel);
54 /*
55  const cv::Vec2d& opticalAxis();
56  const cv::Vec2d& pixelSize();
57 */
58  PhotoParams() :
59  exposureArrangement_(),
60  useCameraMatrix(false),
61  approximateDistance(),
62  focalDist(),
63  pixelSize(),
64  opticalAxis()
65  {};
66 // inline void setComputationModel(vr::ComputationModel computationModel) { computationModel_ = computationModel; };
67  inline void setExposureArrangement(ExposureArrangement exposureArrangement) { exposureArrangement_ = exposureArrangement; };
68  inline ExposureArrangement getExposureArrangement() const { return exposureArrangement_; };
69 };
70 
71 #endif // PHOTO_PARAMS_H
Definition: PhotoParams.h:27