portfolio/color-space/cvImage.h
2026-08-29 23:20:33 +02:00

71 lines
1.6 KiB
C++

#pragma once
#ifndef CVIMAGE_H
#define CVIMAGE_H
#include <QMainWindow>
#include <QMenu>
#include <QMenuBar>
#include <QImage>
#include <QKeyEvent>
#include <highgui.h>
#include <QDebug>
#include <QLabel>
#include <QPainter>
#include <QFileDialog>
#include <QApplication>
#include <QStatusBar>
#include<QMessageBox>
#include<QListWidget>
#include <cv.h>
#include"cvtab.h"
class cvImage : public QMainWindow
{
Q_OBJECT
public:
cvImage();
~cvImage();
/* fonction interne*/
void Mat2QImage(cv::Mat const& src, QImage* dest );
void QImage2Mat(QImage* const& src, cv::Mat& res);
void paintEvent(QPaintEvent* e);
void keyPressEvent(QKeyEvent* event);
void mouseMoveEvent(QMouseEvent *event);
/* fonction a rendre private/protect*/
void ajoutOnglet();
/* fonction a rendre extern (stactic)*/
void calculHist(cv::Mat& image , int* hist);
void egalizhist(cv::Mat& imSrc, cv::Mat& imDst);
void calculHist3(const cv::vector<cv::Mat>& image , int* hist);
void egalizhist3(const cv::vector<cv::Mat>& imSrc, cv::vector<cv::Mat>& imDst);
private:
QMenuBar _menu_bar;
QMenu* _menu;
QImage* _image;
cv::Mat _img;
cv::Mat _img_eq_rgb;
cv::Mat _img_eq_rgb1;
cv::Mat _imgHeq1;
cvTab _onglet;
private slots:
void _open();
void _rgbView();// visuel de source en rgb + lecteur de pixel rgb
void _hsvView();// visuel de source en hsv + lecteur de pixel hsv
void _save();
void _egalizeH();
void _egalizeH3();
void _egalizeH2();
void _histcalc();
protected:
void _close();
signals:
void closed();
};
#endif