No Description

MergePanel.h 4.6KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. #ifndef MAINWINDOW_H
  2. #define MAINWINDOW_H
  3. #include <QMainWindow>
  4. #include <QFileDialog>
  5. #include <QDir>
  6. #include <QMessageBox>
  7. #include <QShortcut>
  8. #include <QImage>
  9. #include <QDebug>
  10. #include <cmath>
  11. /// Main class for the program.
  12. ///
  13. /// This class contains the main functions for the program.
  14. /// There are functions for merging two images together,
  15. /// a function that creates a ghost version of the first image on the merge image,
  16. /// and the functions for the GUI.
  17. namespace Ui {
  18. class MainWindow;
  19. }
  20. class MainWindow : public QMainWindow
  21. {
  22. Q_OBJECT
  23. public:
  24. /// \fn MainWindow::MainWindow(QWidget *parent)
  25. /// \~English
  26. /// \brief Default Constructor for the MainWindow.
  27. /// \~Spanish
  28. /// \brief Constructor por defecto del MainWindow.
  29. explicit MainWindow(QWidget *parent = 0);
  30. /// \fn void MainWindow::MergeImages(const QImage &objectImage, const QImage &backgroundImage, QImage & mergedImage, int threshold, bool ghost, int x, int y, int offset_x, int offset_y)
  31. /// \~English
  32. /// \brief Funcion that merges two images together. It takes an image with any background color
  33. /// and puts it in another image that will act as a background. (Implements Greenscreen techonology)
  34. /// \~Spanish
  35. /// \brief Funcion que fusiona dos imagenes juntas. Toma una imagen con cualquier color de trasfondo
  36. /// y lo pone en otra imagen que actual como el trasfondo. (Implementa la tecnologia de trasfondo verde)
  37. void MergeImages(const QImage &, const QImage &, QImage &, int, bool=false, int=0, int=0, int=0, int=0) ;
  38. /// \fn MainWindow::~MainWindow(QWidget *parent)
  39. /// \~English
  40. /// \brief Destructor for the MainWindow.
  41. /// \~Spanish
  42. /// \brief Destructor del MainWindow.
  43. ~MainWindow();
  44. private slots:
  45. /// \fn void MainWindow::on_ghostBox_clicked()
  46. /// \~English
  47. /// \brief Funtion that invokes the thresholdSlider function and creates a
  48. /// ghost version of the image with greenscreen background.
  49. /// \~Spanish
  50. /// \brief Funcion que invoca la funcion thresholdSlider y crea una version
  51. /// fantasma de la imagen con el trasfondo verde.
  52. void on_ghostBox_clicked();
  53. /// \fn void MainWindow::on_btnSelectImage_clicked()
  54. /// \~English
  55. /// \brief Display the file browsing window to load an image. (Green Background)
  56. /// \~Spanish
  57. /// \brief Despliega la ventana de busqueda de archivos para subir una imagen. (Trasfondo verde)
  58. void on_btnSelectImage_clicked();
  59. /// \fn void MainWindow::on_btnSelectBackground_clicked()
  60. /// \~English
  61. /// \brief Display the file browsing window to load a background image.
  62. /// \~Spanish
  63. /// \brief Despliega la ventana de busqueda de archivos para subir una imagen para el trasfondo.
  64. void on_btnSelectBackground_clicked();
  65. /// \fn void MainWindow::on_btnMergeImages_clicked()
  66. /// \~English
  67. /// \brief Invokes the function that merges the green screen image with the background image,
  68. /// then displays the merged image.
  69. /// \~Spanish
  70. /// \brief Invoca la funcion que fusional la imagen con transfondo verde con la imagen de transfondo,
  71. /// entonces displiega la imagen fusionada.
  72. void on_btnMergeImages_clicked();
  73. /// \fn void MainWindow::on_btnSaveImage_clicked()
  74. /// \~English
  75. /// \brief Displays the file browse window to choose the path to save
  76. /// the merged image in the file system.
  77. /// \~Spanish
  78. /// \brief Despliega la ventana de busqueda de archivos para escoger un camino
  79. /// guardar la imagen fusionada en el sistema de archivos.
  80. void on_btnSaveImage_clicked();
  81. /// \fn void MainWindow::Mouse_Pressed()
  82. /// \~English
  83. /// \brief Function that gets the coordinates of the image with the greenscreen.
  84. /// \~Spanish
  85. /// \brief Funcion que obtiene las coordenada de la imagen con el trasfondo verde.
  86. void Mouse_Pressed();
  87. /// \fn void MainWindow::Mouse_Pressed()
  88. /// \~English
  89. /// \brief Function that gets the coordinaates of the image with the final background.
  90. /// \~Spanish
  91. /// \brief Funcion que obtiene las coordenada de la imagen con el trasfondo final.
  92. void Mouse_PressedBackground() ;
  93. /// \fn void MainWindow::on_thresholdSlider_actionTriggered()
  94. /// \~English
  95. /// \brief Invokes the function that merges the green screen image with the background image.
  96. /// \~Spanish
  97. /// \brief Invoca la funcion que fusiona la imagen de trasfondo verde con la imagen del trasfondo final.
  98. void on_thresholdSlider_actionTriggered();
  99. private:
  100. Ui::MainWindow *ui;
  101. QImage originalImage;
  102. QImage backgroundImage;
  103. QImage mergedImage;
  104. };
  105. #endif // MAINWINDOW_H