From dbe7f23d901be1e598d878278ef52199422a416f Mon Sep 17 00:00:00 2001 From: ariotte <ariotte@PC-EII16.admr.insa> Date: Mon, 18 Jun 2018 11:28:10 +0200 Subject: [PATCH] changed filtre struct to Filtre --- app/Algorithms/Pyramid.cpp | 48 ++++++++++++++----------- app/Algorithms/Pyramid.h | 38 ++++++++++---------- app/Operations/InversePyramidDialog.cpp | 4 +-- app/Operations/InversePyramidDialog.h | 2 +- app/Operations/InversePyramidOp.cpp | 2 +- app/Operations/PyramidDialog.cpp | 4 +-- app/Operations/PyramidDialog.h | 2 +- app/Operations/PyramidOp.cpp | 2 +- 8 files changed, 55 insertions(+), 47 deletions(-) diff --git a/app/Algorithms/Pyramid.cpp b/app/Algorithms/Pyramid.cpp index ad493b4..d55aa4d 100644 --- a/app/Algorithms/Pyramid.cpp +++ b/app/Algorithms/Pyramid.cpp @@ -29,10 +29,18 @@ using namespace Pyramid; const uint8_t tp6_filter_file_data[] = {0x74, 0x72, 0x69, 0x61, 0x6e, 0x67, 0x75, 0x6c, 0x61, 0x69, 0x72, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x80, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x67, 0x61, 0x75, 0x73, 0x73, 0x69, 0x65, 0x6e, 0x00, 0x00, 0xf8, 0x45, 0x26, 0x00, 0xf8, 0x45, 0x26, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xcd, 0xcc, 0xcc, 0x3e, 0x00, 0x00, 0x80, 0x3e, 0xcd, 0xcc, 0x4c, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x74, 0x72, 0x69, 0x6d, 0x6f, 0x64, 0x61, 0x6c, 0x00, 0x00, 0x00, 0x45, 0x26, 0x00, 0xf8, 0x45, 0x26, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9a, 0x99, 0x19, 0x3f, 0x00, 0x00, 0x80, 0x3e, 0xcd, 0xcc, 0x4c, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x72, 0x65, 0x63, 0x74, 0x61, 0x6e, 0x67, 0x75, 0x6c, 0x61, 0x69, 0x72, 0x65, 0x00, 0x00, 0x00, 0xf8, 0x45, 0x26, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xae, 0x47, 0xe1, 0x3d, 0xae, 0x47, 0xe1, 0x3d, 0xae, 0x47, 0xe1, 0x3d, 0xae, 0x47, 0xe1, 0x3d, 0xae, 0x47, 0xe1, 0x3d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x71, 0x6d, 0x66, 0x00, 0x58, 0xec, 0x00, 0x00, 0xf8, 0x45, 0x26, 0x00, 0x00, 0x00, 0xf8, 0x45, 0x26, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x51, 0x88, 0x10, 0x3f, 0x16, 0xde, 0x95, 0x3e, 0x9c, 0xf9, 0x55, 0xbd, 0xae, 0xf0, 0x2e, 0xbd, 0x2f, 0x6e, 0xa3, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00}; +/*Pyramid::Filtre triang = { + "triangulaire", + {0.0, 5.78564e-39, -5.6938e-39, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 3.58732e-43}, + 0, +}; +*/ + + Pyramid::Filters::Filters() { - num_filters=(int)sizeof(tp6_filter_file_data)/sizeof(filtre); - filters = reinterpret_cast<const filtre*>(tp6_filter_file_data); + num_filters=(int)sizeof(tp6_filter_file_data)/sizeof(Filtre); + filters = reinterpret_cast<const Filtre*>(tp6_filter_file_data); } Pyramid::Filters::~Filters() @@ -42,7 +50,7 @@ Pyramid::Filters::~Filters() } } -bool Pyramid::Filters::getFromPos( int pos, filtre &to_fill ) { +bool Pyramid::Filters::getFromPos( int pos, Filtre &to_fill ) { bool found = false; if( pos >= 0 && pos < num_filters ) { found = true; @@ -51,7 +59,7 @@ bool Pyramid::Filters::getFromPos( int pos, filtre &to_fill ) { return found; } -bool Filters::getFromName( const char *name, filtre &to_fill ) { +bool Filters::getFromName( const char *name, Filtre &to_fill ) { bool found = false; if( strcmp( name, "default - gaussien" ) == 0 ) { found = true; @@ -72,7 +80,7 @@ int Filters::size() { return num_filters; } -void Filters::copy_filter(const filtre &source, filtre &dest ) { +void Filters::copy_filter(const Filtre &source, Filtre &dest ) { int counter; for( counter=0; counter< 30; counter++ ) { dest.nom_f[counter] = source.nom_f[counter]; @@ -83,7 +91,7 @@ void Filters::copy_filter(const filtre &source, filtre &dest ) { dest.taille_f = source.taille_f; } -void Filters::getDefault( filtre &to_fill ) { +void Filters::getDefault( Filtre &to_fill ) { strcpy( to_fill.nom_f, "default - gaussien" ); to_fill.taille_f = (float)2; to_fill.coeff_f[0] = (float)0.4; @@ -94,7 +102,7 @@ void Filters::getDefault( filtre &to_fill ) { /*--------------------------------------------------------------------------- Cration de l'tage suivant de la pyramide Gaussienne ---------------------------------------------------------------------------*/ -void Pyramid::etage_suiv_g(const uint8_t *srcTab, uint8_t *dstTab, int srcWidth, int srcHeight, filtre &utile) +void Pyramid::etage_suiv_g(const uint8_t *srcTab, uint8_t *dstTab, int srcWidth, int srcHeight, Filtre &utile) { cout << "etage_suiv_g " << srcWidth << " " << srcHeight << " " << endl; cout << "src = " << (uintptr_t)srcTab << " dst = " << (uintptr_t)dstTab << endl; @@ -122,7 +130,7 @@ void Pyramid::etage_suiv_g(const uint8_t *srcTab, uint8_t *dstTab, int srcWidth, /*--------------------------------------------------------------------------- Cration d'une pyramide Gaussienne jusqu'au nime tage ---------------------------------------------------------------------------*/ -void Pyramid::pyram_g_n(uint8_t *rep, int nStage, long nbc, long nbl, const uint8_t *itab, filtre &utile) +void Pyramid::pyram_g_n(uint8_t *rep, int nStage, long nbc, long nbl, const uint8_t *itab, Filtre &utile) { cout << "pyram_g_n " << nStage << " " << nbc << " " << nbl << endl; int taille_c=nbc; @@ -146,7 +154,7 @@ void Pyramid::pyram_g_n(uint8_t *rep, int nStage, long nbc, long nbl, const uint /*--------------------------------------------------------------------------- Creation d'une pyramide Laplacienne jusqu'au nime tage ---------------------------------------------------------------------------*/ -void Pyramid::pyram_l_n (uint8_t *rep,int n, long nbc, long nbl, const uint8_t *itab, filtre &utile) +void Pyramid::pyram_l_n (uint8_t *rep,int n, long nbc, long nbl, const uint8_t *itab, Filtre &utile) { int i; int j=0; @@ -190,7 +198,7 @@ void Pyramid::pyram_l_n (uint8_t *rep,int n, long nbc, long nbl, const uint8_t * Cration d'une pyramide Gaussienne avec entre en conversationnel des diffrentes proprits de cette pyramide ---------------------------------------------------------------------------*/ -Image *Pyramid::pyram_g(const GrayscaleImage *im, int etage_f, filtre &utile, string &to_print) +Image *Pyramid::pyram_g(const GrayscaleImage *im, int etage_f, Filtre &utile, string &to_print) { if(!( im != NULL )) { throw "Error in Pyramid::pyram_g:\nim = NULL"; @@ -224,7 +232,7 @@ Image *Pyramid::pyram_g(const GrayscaleImage *im, int etage_f, filtre &utile, st /*--------------------------------------------------------------------------- Cration d'un tage de la pyramide Gaussienne ---------------------------------------------------------------------------*/ -Image *Pyramid::n_pyram_g(const Image *im, int etage_f, filtre &utile ) +Image *Pyramid::n_pyram_g(const Image *im, int etage_f, Filtre &utile ) { if(!( im != NULL )) { throw "Error in Pyramid::pyram_g:\nim = NULL"; @@ -270,7 +278,7 @@ Image *Pyramid::n_pyram_g(const Image *im, int etage_f, filtre &utile ) Cration d'une pyramide Laplacienne avec entre en conversationnel des diffrentes proprits de cette pyramide ---------------------------------------------------------------------------*/ -Image *Pyramid::pyram_l (const Image *im, int etage_f, filtre &utile, string &to_print) +Image *Pyramid::pyram_l (const Image *im, int etage_f, Filtre &utile, string &to_print) { if(!( im != NULL )) { throw "Error in Pyramid::pyram_g:\nim = NULL"; @@ -302,7 +310,7 @@ Image *Pyramid::pyram_l (const Image *im, int etage_f, filtre &utile, string &to /*--------------------------------------------------------------------------- Cration d'un tage de la pyramide Laplacienne ---------------------------------------------------------------------------*/ -Image *Pyramid::n_pyram_l(const Image *im, int etage_f, filtre &utile) +Image *Pyramid::n_pyram_l(const Image *im, int etage_f, Filtre &utile) { if(!( im != NULL )) { throw "Error in Pyramid::pyram_g:\nim = NULL"; @@ -351,7 +359,7 @@ Image *Pyramid::n_pyram_l(const Image *im, int etage_f, filtre &utile) /*--------------------------------------------------------------------------- Filtrage d'un point de l'image suivant une ligne ---------------------------------------------------------------------------*/ -uint8_t Pyramid::filt_point_1d_lg(const uint8_t *tab,int cl, int x, int y, filtre &utile) +uint8_t Pyramid::filt_point_1d_lg(const uint8_t *tab,int cl, int x, int y, Filtre &utile) { float partiel=0.; int i; @@ -396,7 +404,7 @@ uint8_t Pyramid::filt_point_1d_lg(const uint8_t *tab,int cl, int x, int y, filtr /*--------------------------------------------------------------------------- Filtrage d'un point de l'image suivant une colonne ---------------------------------------------------------------------------*/ -uint8_t Pyramid::filt_point_1d_cl(const uint8_t *tab,int lg,int cl, int x, int y, filtre &utile) +uint8_t Pyramid::filt_point_1d_cl(const uint8_t *tab,int lg,int cl, int x, int y, Filtre &utile) { float partiel=0.; int i; @@ -439,7 +447,7 @@ uint8_t Pyramid::filt_point_1d_cl(const uint8_t *tab,int lg,int cl, int x, int y /*--------------------------------------------------------------------------- Filtrage d'une ligne ---------------------------------------------------------------------------*/ -void Pyramid::filt_ligne(uint8_t *ligne,int taille_c, filtre &utile) +void Pyramid::filt_ligne(uint8_t *ligne,int taille_c, Filtre &utile) { int i; uint8_t *intermed; @@ -457,7 +465,7 @@ void Pyramid::filt_ligne(uint8_t *ligne,int taille_c, filtre &utile) /*--------------------------------------------------------------------------- Filtrage d'une image suivant les colonnes ---------------------------------------------------------------------------*/ -void Pyramid::filt_tab_cl(uint8_t *tab,int taille_c,int taille_l, filtre &utile) +void Pyramid::filt_tab_cl(uint8_t *tab,int taille_c,int taille_l, Filtre &utile) { int i,j; uint8_t *intermed; @@ -482,7 +490,7 @@ void Pyramid::filt_tab_cl(uint8_t *tab,int taille_c,int taille_l, filtre &utile) /*--------------------------------------------------------------------------- Agrandissement d'une image (avec filtrage) ---------------------------------------------------------------------------*/ -void Pyramid::agrandir(uint8_t *petit,uint8_t *grand,int taille_c,int taille_l, filtre &utile) +void Pyramid::agrandir(uint8_t *petit,uint8_t *grand,int taille_c,int taille_l, Filtre &utile) { int i,j; uint8_t *intermed; @@ -512,7 +520,7 @@ void Pyramid::agrandir(uint8_t *petit,uint8_t *grand,int taille_c,int taille_l, } /*--------------------------------------------------------------------------- - Rarangement de la pyramide + Rearangement de la pyramide ---------------------------------------------------------------------------*/ void Pyramid::reconstruction(uint8_t *pyra,int n, long nbc, long nbl) @@ -625,7 +633,7 @@ string Pyramid::entropie_p(const uint8_t *pyra,int etage_f,int nbc,int nbl) } -Image *Pyramid::rebuild_interface( const Image *pyramid, int etage_f, int pyramid_to, filtre &utile ) { +Image *Pyramid::rebuild_interface( const Image *pyramid, int etage_f, int pyramid_to, Filtre &utile ) { // rebuilds from an image that was saved // etage_f = stage that the original image was built to char buffer[255]; diff --git a/app/Algorithms/Pyramid.h b/app/Algorithms/Pyramid.h index c146818..26d05f4 100644 --- a/app/Algorithms/Pyramid.h +++ b/app/Algorithms/Pyramid.h @@ -30,7 +30,7 @@ namespace Pyramid return ( ( n > 0 ) && ( (n & (n - 1) ) == 0) ); } - struct filtre { + typedef struct Filtre { char nom_f[30]; float coeff_f[10]; int taille_f; @@ -41,33 +41,33 @@ namespace Pyramid public: Filters(); virtual ~Filters(); - bool getFromPos( int pos, filtre &to_fill ); - bool getFromName( const char *name, filtre &to_fill ); - void getDefault( filtre &to_fill ); + bool getFromPos( int pos, Filtre &to_fill ); + bool getFromName( const char *name, Filtre &to_fill ); + void getDefault( Filtre &to_fill ); int size(); private: - const filtre *filters; + const Filtre *filters; int num_filters; - void copy_filter( const filtre &source, filtre &dest ); + void copy_filter( const Filtre &source, Filtre &dest ); }; - void etage_suiv_g(const uint8_t *srcTab, uint8_t *dstTab, int srcWidth, int srcHeight, filtre &utile); - void pyram_g_n(uint8_t *rep, int nStage, long nbc, long nbl, const uint8_t *itab, filtre &utile); - void pyram_l_n (uint8_t *rep,int n, long nbc, long nbl, const uint8_t *itab, filtre &utile); - imagein::Image *pyram_g(const imagein::GrayscaleImage *im, int etage_f, filtre &utile, std::string &to_print); - imagein::Image *n_pyram_g(const imagein::Image *im, int etage_f, filtre &utile ); - imagein::Image *pyram_l (const imagein::Image *im, int etage_f, filtre &utile, std::string &to_print); - imagein::Image *n_pyram_l(const imagein::Image *im, int etage_f, filtre &utile); - uint8_t filt_point_1d_lg(const uint8_t *tab,int cl, int x, int y, filtre &utile); - uint8_t filt_point_1d_cl(const uint8_t *tab,int lg,int cl, int x, int y, filtre &utile); - void filt_ligne(uint8_t *ligne,int taille_c, filtre &utile); - void filt_tab_cl(uint8_t *tab,int taille_c,int taille_l, filtre &utile); - void agrandir(uint8_t *petit,uint8_t *grand,int taille_c,int taille_l, filtre &utile); + void etage_suiv_g(const uint8_t *srcTab, uint8_t *dstTab, int srcWidth, int srcHeight, Filtre &utile); + void pyram_g_n(uint8_t *rep, int nStage, long nbc, long nbl, const uint8_t *itab, Filtre &utile); + void pyram_l_n (uint8_t *rep,int n, long nbc, long nbl, const uint8_t *itab, Filtre &utile); + imagein::Image *pyram_g(const imagein::GrayscaleImage *im, int etage_f, Filtre &utile, std::string &to_print); + imagein::Image *n_pyram_g(const imagein::Image *im, int etage_f, Filtre &utile ); + imagein::Image *pyram_l (const imagein::Image *im, int etage_f, Filtre &utile, std::string &to_print); + imagein::Image *n_pyram_l(const imagein::Image *im, int etage_f, Filtre &utile); + uint8_t filt_point_1d_lg(const uint8_t *tab,int cl, int x, int y, Filtre &utile); + uint8_t filt_point_1d_cl(const uint8_t *tab,int lg,int cl, int x, int y, Filtre &utile); + void filt_ligne(uint8_t *ligne,int taille_c, Filtre &utile); + void filt_tab_cl(uint8_t *tab,int taille_c,int taille_l, Filtre &utile); + void agrandir(uint8_t *petit,uint8_t *grand,int taille_c,int taille_l, Filtre &utile); void reconstruction(uint8_t *pyra,int n, long nbc, long nbl); int etage_max(const imagein::Image *im); float entropie2(const uint8_t *tab,int taille_c,int taille_l); std::string entropie_p(const uint8_t *pyra,int etage_f,int nbc,int nbl); - imagein::Image* rebuild_interface(const imagein::Image *to_rebuild, int etage_f, int to_rebuild_to, filtre &utile ); + imagein::Image* rebuild_interface(const imagein::Image *to_rebuild, int etage_f, int to_rebuild_to, Filtre &utile ); } #endif // PYRAMID_H diff --git a/app/Operations/InversePyramidDialog.cpp b/app/Operations/InversePyramidDialog.cpp index 2c09ff2..fb13c60 100644 --- a/app/Operations/InversePyramidDialog.cpp +++ b/app/Operations/InversePyramidDialog.cpp @@ -32,9 +32,9 @@ InversePyramidDialog::~InversePyramidDialog() delete ui; } -Pyramid::filtre InversePyramidDialog::getFilter() const { +Pyramid::Filtre InversePyramidDialog::getFilter() const { Pyramid::Filters filters; - Pyramid::filtre filter; + Pyramid::Filtre filter; switch(ui->filterBox->currentIndex()) { case 1: filters.getFromName("gaussien", filter); break; case 2: filters.getFromName("trimodal", filter); break; diff --git a/app/Operations/InversePyramidDialog.h b/app/Operations/InversePyramidDialog.h index f510674..5280e8c 100644 --- a/app/Operations/InversePyramidDialog.h +++ b/app/Operations/InversePyramidDialog.h @@ -34,7 +34,7 @@ class InversePyramidDialog : public QDialog public: explicit InversePyramidDialog(QWidget *parent = 0); ~InversePyramidDialog(); - Pyramid::filtre getFilter() const; + Pyramid::Filtre getFilter() const; int getNbStep() const; int getStep() const; diff --git a/app/Operations/InversePyramidOp.cpp b/app/Operations/InversePyramidOp.cpp index 345a65e..3f0a346 100644 --- a/app/Operations/InversePyramidOp.cpp +++ b/app/Operations/InversePyramidOp.cpp @@ -56,7 +56,7 @@ void InversePyramidOp::operator()(const imagein::Image* img, const std::map<cons GrayscaleImage* image = Converter<GrayscaleImage>::convert(*img); Image* resImg = NULL; string s; - Pyramid::filtre filter = dialog->getFilter(); + Pyramid::Filtre filter = dialog->getFilter(); try { resImg = Pyramid::rebuild_interface(image, dialog->getNbStep(), dialog->getStep(), filter); } diff --git a/app/Operations/PyramidDialog.cpp b/app/Operations/PyramidDialog.cpp index 9c77919..f2f3d4b 100644 --- a/app/Operations/PyramidDialog.cpp +++ b/app/Operations/PyramidDialog.cpp @@ -32,9 +32,9 @@ PyramidDialog::~PyramidDialog() delete ui; } -Pyramid::filtre PyramidDialog::getFilter() const { +Pyramid::Filtre PyramidDialog::getFilter() const { Pyramid::Filters filters; - Pyramid::filtre filter; + Pyramid::Filtre filter; switch(ui->filterBox->currentIndex()) { case 1: filters.getFromName("gaussien", filter); break; case 2: filters.getFromName("trimodal", filter); break; diff --git a/app/Operations/PyramidDialog.h b/app/Operations/PyramidDialog.h index 9964d47..3380748 100644 --- a/app/Operations/PyramidDialog.h +++ b/app/Operations/PyramidDialog.h @@ -34,7 +34,7 @@ class PyramidDialog : public QDialog public: explicit PyramidDialog(QWidget *parent = 0); ~PyramidDialog(); - Pyramid::filtre getFilter() const; + Pyramid::Filtre getFilter() const; int getNbStep(); bool isGaussian() const; bool onlyOneStep() const; diff --git a/app/Operations/PyramidOp.cpp b/app/Operations/PyramidOp.cpp index c9a6e5c..75052b4 100644 --- a/app/Operations/PyramidOp.cpp +++ b/app/Operations/PyramidOp.cpp @@ -58,7 +58,7 @@ void PyramidOp::operator()(const imagein::Image* img, const std::map<const image GrayscaleImage* image = Converter<GrayscaleImage>::convert(*img); Image* resImg = NULL; string s; - Pyramid::filtre filtre = dialog->getFilter(); + Pyramid::Filtre filtre = dialog->getFilter(); try { if(dialog->onlyOneStep()) { if(dialog->isGaussian()) { -- GitLab