ACloudViewer  3.9.4
A Modern Library for 3D Data Processing
image_viewer_widget.h
Go to the documentation of this file.
1 // ----------------------------------------------------------------------------
2 // - CloudViewer: www.cloudViewer.org -
3 // ----------------------------------------------------------------------------
4 // Copyright (c) 2018-2024 www.cloudViewer.org
5 // SPDX-License-Identifier: MIT
6 // ----------------------------------------------------------------------------
7 
8 #pragma once
9 
10 #include <QtCore>
11 #include <QtWidgets>
12 
13 #include "base/database.h"
14 #include "base/projection.h"
15 #include "base/reconstruction.h"
16 #include "ui/qt_utils.h"
17 #include "util/option_manager.h"
18 
19 namespace colmap {
20 
21 class ModelViewerWidget;
22 
23 class ImageViewerGraphicsScene : public QGraphicsScene {
24 public:
26 
27  QGraphicsPixmapItem* ImagePixmapItem() const;
28 
29 private:
30  QGraphicsPixmapItem* image_pixmap_item_ = nullptr;
31 };
32 
33 class ImageViewerWidget : public QWidget {
34 public:
35  explicit ImageViewerWidget(QWidget* parent);
36 
37  void ShowBitmap(const Bitmap& bitmap);
38  void ShowPixmap(const QPixmap& pixmap);
39  void ReadAndShow(const std::string& path);
40 
41 private:
42  static const double kZoomFactor;
43 
44  ImageViewerGraphicsScene graphics_scene_;
45  QGraphicsView* graphics_view_;
46 
47 protected:
48  void resizeEvent(QResizeEvent* event);
49  void closeEvent(QCloseEvent* event);
50  void ZoomIn();
51  void ZoomOut();
52  void Save();
53 
54  QGridLayout* grid_layout_;
55  QHBoxLayout* button_layout_;
56 };
57 
59 public:
60  FeatureImageViewerWidget(QWidget* parent, const std::string& switch_text);
61 
62  void ReadAndShowWithKeypoints(const std::string& path,
63  const FeatureKeypoints& keypoints,
64  const std::vector<char>& tri_mask);
65 
66  void ReadAndShowWithMatches(const std::string& path1,
67  const std::string& path2,
68  const FeatureKeypoints& keypoints1,
69  const FeatureKeypoints& keypoints2,
70  const FeatureMatches& matches);
71 
72 protected:
73  void ShowOrHide();
74 
75  QPixmap image1_;
76  QPixmap image2_;
78  QPushButton* switch_button_;
79  const std::string switch_text_;
80 };
81 
83 public:
84  DatabaseImageViewerWidget(QWidget* parent,
85  ModelViewerWidget* model_viewer_widget,
86  OptionManager* options);
87 
88  void ShowImageWithId(const image_t image_id);
89 
90 private:
91  void ResizeTable();
92  void DeleteImage();
93 
94  ModelViewerWidget* model_viewer_widget_;
95 
96  OptionManager* options_;
97 
98  QPushButton* delete_button_;
99 
100  image_t image_id_;
101 
102  QTableWidget* table_widget_;
103  QTableWidgetItem* image_id_item_;
104  QTableWidgetItem* camera_id_item_;
105  QTableWidgetItem* camera_model_item_;
106  QTableWidgetItem* camera_params_item_;
107  QTableWidgetItem* qvec_item_;
108  QTableWidgetItem* tvec_item_;
109  QTableWidgetItem* dimensions_item_;
110  QTableWidgetItem* num_points2D_item_;
111  QTableWidgetItem* num_points3D_item_;
112  QTableWidgetItem* num_obs_item_;
113  QTableWidgetItem* name_item_;
114 };
115 
116 } // namespace colmap
MouseEvent event
DatabaseImageViewerWidget(QWidget *parent, ModelViewerWidget *model_viewer_widget, OptionManager *options)
void ShowImageWithId(const image_t image_id)
void ReadAndShowWithKeypoints(const std::string &path, const FeatureKeypoints &keypoints, const std::vector< char > &tri_mask)
FeatureImageViewerWidget(QWidget *parent, const std::string &switch_text)
void ReadAndShowWithMatches(const std::string &path1, const std::string &path2, const FeatureKeypoints &keypoints1, const FeatureKeypoints &keypoints2, const FeatureMatches &matches)
QGraphicsPixmapItem * ImagePixmapItem() const
void closeEvent(QCloseEvent *event)
void ShowBitmap(const Bitmap &bitmap)
void ShowPixmap(const QPixmap &pixmap)
ImageViewerWidget(QWidget *parent)
void ReadAndShow(const std::string &path)
void resizeEvent(QResizeEvent *event)
static const std::string path
Definition: PointCloud.cpp:59
uint32_t image_t
Definition: types.h:61
std::vector< FeatureKeypoint > FeatureKeypoints
Definition: types.h:77
std::vector< FeatureMatch > FeatureMatches
Definition: types.h:80