ACloudViewer  3.9.4
A Modern Library for 3D Data Processing
ImageViewerWidget.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 "feature/types.h"
14 
15 namespace colmap {
16 class Bitmap;
17 }
18 
19 #include "util/option_manager.h"
20 
21 namespace cloudViewer {
22 
24 class ModelViewerWidget;
25 
26 class ImageViewerGraphicsScene : public QGraphicsScene {
27 public:
29 
30  QGraphicsPixmapItem* ImagePixmapItem() const;
31 
32 private:
33  QGraphicsPixmapItem* image_pixmap_item_ = nullptr;
34 };
35 
36 class ImageViewerWidget : public QWidget {
37 public:
38  explicit ImageViewerWidget(QWidget* parent);
39 
40  void ShowBitmap(const colmap::Bitmap& bitmap);
41  void ShowPixmap(const QPixmap& pixmap);
42  void ReadAndShow(const std::string& path);
43 
44 private:
45  static const double kZoomFactor;
46 
47  ImageViewerGraphicsScene graphics_scene_;
48  QGraphicsView* graphics_view_;
49 
50 protected:
51  void resizeEvent(QResizeEvent* event);
52  void closeEvent(QCloseEvent* event);
53  void ZoomIn();
54  void ZoomOut();
55  void Save();
56 
57  QGridLayout* grid_layout_;
58  QHBoxLayout* button_layout_;
59 };
60 
62 public:
63  FeatureImageViewerWidget(QWidget* parent, const std::string& switch_text);
64 
65  void ReadAndShowWithKeypoints(const std::string& path,
66  const colmap::FeatureKeypoints& keypoints,
67  const std::vector<char>& tri_mask);
68 
69  void ReadAndShowWithMatches(const std::string& path1,
70  const std::string& path2,
71  const colmap::FeatureKeypoints& keypoints1,
72  const colmap::FeatureKeypoints& keypoints2,
73  const colmap::FeatureMatches& matches);
74 
75 protected:
76  void ShowOrHide();
77 
78  QPixmap image1_;
79  QPixmap image2_;
81  QPushButton* switch_button_;
82  const std::string switch_text_;
83 };
84 
86 public:
87  DatabaseImageViewerWidget(QWidget* parent,
89  OptionManager* options);
90 
91  void ShowImageWithId(const colmap::image_t image_id);
92 
93 private:
94  void ResizeTable();
95  void DeleteImage();
96 
97  ModelViewerWidget* model_viewer_widget_;
98 
99  OptionManager* options_;
100 
101  QPushButton* delete_button_;
102 
103  colmap::image_t image_id_;
104 
105  QTableWidget* table_widget_;
106  QTableWidgetItem* image_id_item_;
107  QTableWidgetItem* camera_id_item_;
108  QTableWidgetItem* camera_model_item_;
109  QTableWidgetItem* camera_params_item_;
110  QTableWidgetItem* qvec_item_;
111  QTableWidgetItem* tvec_item_;
112  QTableWidgetItem* dimensions_item_;
113  QTableWidgetItem* num_points2D_item_;
114  QTableWidgetItem* num_points3D_item_;
115  QTableWidgetItem* num_obs_item_;
116  QTableWidgetItem* name_item_;
117 };
118 
119 } // namespace cloudViewer
MouseEvent event
DatabaseImageViewerWidget(QWidget *parent, ModelViewerWidget *ModelViewerWidget, OptionManager *options)
void ShowImageWithId(const colmap::image_t image_id)
void ReadAndShowWithMatches(const std::string &path1, const std::string &path2, const colmap::FeatureKeypoints &keypoints1, const colmap::FeatureKeypoints &keypoints2, const colmap::FeatureMatches &matches)
void ReadAndShowWithKeypoints(const std::string &path, const colmap::FeatureKeypoints &keypoints, const std::vector< char > &tri_mask)
FeatureImageViewerWidget(QWidget *parent, const std::string &switch_text)
QGraphicsPixmapItem * ImagePixmapItem() const
void ShowBitmap(const colmap::Bitmap &bitmap)
void resizeEvent(QResizeEvent *event)
void closeEvent(QCloseEvent *event)
void ShowPixmap(const QPixmap &pixmap)
void ReadAndShow(const std::string &path)
static const std::string path
Definition: PointCloud.cpp:59
Generic file read and write utility for python interface.
colmap::OptionManager OptionManager