Skip to content
Snippets Groups Projects
Commit e248c1c3 authored by Tanguy Raufflet's avatar Tanguy Raufflet
Browse files

Fix Fourier transform dimension #131

Ajout d'une vérification sur les dimensions des images d'entrée.
Si ce n'est pas le cas, on ne réalise la FFT inverse
+ on génère une boite de dialogue
parent 70e28061
No related branches found
No related tags found
No related merge requests found
......@@ -31,6 +31,7 @@
#include <cmath>
#include <QGroupBox>
#include <QCheckBox>
#include <QMessageBox>
using namespace std;
using namespace imagein;
......@@ -100,6 +101,11 @@ void IFFTOp::operator()(const imagein::Image_t<double>*, const map<const imagein
const Image_t<double>* magnitudeImg = magtdImgBox->currentImage();
const Image_t<double>* phaseImg = phaseImgBox->currentImage();
if(magnitudeImg == NULL || phaseImg == NULL) return;
if(magnitudeImg->getHeight() != phaseImg->getHeight() || magnitudeImg->getWidth() != phaseImg->getWidth()){
QMessageBox::critical(nullptr, qApp->translate("IFFTOp", "Error : inverse FFT"),
qApp->translate("IFFTOp", "Magnitude and phase images have different size"));
return;
}
unsigned int width = min(nearestUpPower2(magnitudeImg->getWidth()), nearestUpPower2(phaseImg->getWidth()));
unsigned int height = min(nearestUpPower2(magnitudeImg->getHeight()), nearestUpPower2(phaseImg->getHeight()));
unsigned int channels = min(magnitudeImg->getNbChannels(), phaseImg->getNbChannels());
......@@ -152,6 +158,11 @@ void IFFTOp::operator()(const imagein::Image_t<double>*, const map<const imagein
const Image_t<double>* realImg = realImgBox->currentImage();
const Image_t<double>* imagImg = imagImgBox->currentImage();
if(realImg == NULL || imagImg == NULL) return;
if(realImg->getHeight() != imagImg->getHeight() || realImg->getWidth() != imagImg->getWidth()){
QMessageBox::critical(nullptr, qApp->translate("IFFTOp", "Error : inverse FFT"),
qApp->translate("IFFTOp", "Real and imaginary images have different size"));
return;
}
unsigned int width = min(nearestUpPower2(realImg->getWidth()), nearestUpPower2(imagImg->getWidth()));
unsigned int height = min(nearestUpPower2(realImg->getHeight()), nearestUpPower2(imagImg->getHeight()));
unsigned int channels = min(realImg->getNbChannels(), imagImg->getNbChannels());
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment