qcam_calib
QCamCalib.hpp
Go to the documentation of this file.
1 #ifndef QCAMCALIB_HPP
2 #define QCAMCALIB_HPP
3 
4 #include <QtGui>
5 #include <QFuture>
6 #include <QFutureWatcher>
7 
8 namespace qcam_calib
9 {
10  class CameraItem;
11  class ImageItem;
12  class ImageView;
13 }
14 
15 
25 class QCamCalib : public QWidget
26 {
27  Q_OBJECT
28 public:
29  QCamCalib(QWidget *parent = 0);
30  virtual ~QCamCalib();
31 
32 public slots:
39  void addCamera(int camera_id = -1);
40 
49  void removeCamera(int camera_id = -1);
50 
61  void loadImages(int camera_id = -1);
62 
73  void addImage(const QString &name,const QImage &image,int camera_id=-1);
74 
83  void saveCameraParameter(int camera_id = -1);
84 
93  void calibrateCamera(int camera_id = -1);
94 
104  void findChessBoard(int camera_id=-1,const QString &name=QString(""));
105 
106 private slots:
107  void contextMenuTreeView(const QPoint &point);
108  void clickedTreeView(const QModelIndex& index);
109  void displayImage(const QImage &image);
110  void removeCurrentItem();
111 
112 private:
113  qcam_calib::CameraItem *getCameraItem(int camera_id);
114  qcam_calib::ImageItem *getImageItem(int camera_id,const QString &name);
115 
116 private:
117  // file paths
118  QString current_load_path;
119 
120  // tree model
121  QStandardItemModel *tree_model;
122 
123  // menues
124  QMenu *camera_item_menu;
125  QMenu *tree_view_menu;
126  QMenu *image_item_menu;
127 
128  // image dispay
129  qcam_calib::ImageView *image_view;
130 
131  // progress stuff
132  QProgressDialog *progress_dialog_images;
133  QProgressDialog *progress_dialog_chessboard;
134  QProgressDialog *progress_dialog_calibrate;
135  QFutureWatcher<QImage> *future_watcher_images;
136  QFutureWatcher<QVector<QPointF> > *future_watcher_chessboard;
137  QFutureWatcher<void> *future_watcher_calibrate;
138 };
139 
140 #endif /* QCAMCALIB_HPP */
void calibrateCamera(int camera_id=-1)
Calibrates a camera.
Definition: QCamCalib.cpp:216
Definition: Items.hpp:27
void saveCameraParameter(int camera_id=-1)
Opens a file dialog and saves the camera parameter as YAML or XML.
Definition: QCamCalib.cpp:144
virtual ~QCamCalib()
Definition: QCamCalib.cpp:101
void addImage(const QString &name, const QImage &image, int camera_id=-1)
Adds an image to a camera.
Definition: QCamCalib.cpp:295
Widget for calibrating pinhole cameras.
Definition: QCamCalib.hpp:25
void addCamera(int camera_id=-1)
Adds a new camera to the workspace.
Definition: QCamCalib.cpp:127
void loadImages(int camera_id=-1)
Opens a dialog to select images which are going to be loaded and added to the camera.
Definition: QCamCalib.cpp:169
QCamCalib(QWidget *parent=0)
Definition: QCamCalib.cpp:18
Definition: ImageView.hpp:8
Definition: Items.hpp:47
void removeCamera(int camera_id=-1)
Removes a camera from the workspace.
Definition: QCamCalib.cpp:158
void findChessBoard(int camera_id=-1, const QString &name=QString(""))
Finds chessboard corners in an image.
Definition: QCamCalib.cpp:301