32 #include <Image/FFT2D.hh>
33 #include <Base/Image/Image.hh>
34 #include <Base/Image/ImageIO.hh>
35 #include <Base/Image/ImageConvert.hh>
36 #include <Base/Debug/TimeMeasure.hh>
43 int main(
int argc,
char *argv[])
47 if (argc<2 || argc > 3){
48 cerr << argv[0] <<
" <image> [image2]\n";
54 if (ImageIO::Load(argv[1], im1)!=0){
55 BIASERR(
"error loading image "<<argv[1]);
59 ImageConvert::ToGrey(im1,im1grey);
61 ImageIO::Save(
"0_Grey1",im1grey);
72 cout <<
"FFT Forward took [ms] :"<<StopWatch.
GetRealTime()/1000<<endl;;
78 ImageIO::Save(
"revTrans.mip", revTrans);
80 ImageIO::Save(
"1_Imaginaer1",i);
81 ImageIO::Save(
"1_Real1",r);
86 ImageIO::Save(
"2_M1",m);
92 if (ImageIO::Load(argv[2], im2)!=0){
93 BIASERR(
"error loading image "<<argv[2]);
98 BIASERR(
"images must have same size!");
101 ImageConvert::ToGrey(im2,im2grey);
103 ImageIO::Save(
"0_Grey2",im2grey);
108 ImageIO::Save(
"1_Imaginaer2",i);
109 ImageIO::Save(
"1_Real2",r);
120 ImageIO::Save(
"2_CPS",cps);
127 ImageIO::Save(
"4_Resolution",res);
unsigned int GetWidth() const
virtual int TransformAbs(const Image< InputStorageType > &src, Image< OutputStorageType > &dst)
Transform forward and get absolute value from complex result The result is not normalized! ...
unsigned int GetHeight() const
double GetRealTime() const
return real time (=wall time clock) in usec JW For Win32: real-time is measured differently from user...
void Init(int width, int height)
initializes for forward transformation on complete image.
virtual int TransformPhase(const Image< InputStorageType > &src, Image< OutputStorageType > &dst)
dstX.GetChannelCount()==src.GetCHannelCount()
virtual int Filter(const Image< InputStorageType > &src, Image< OutputStorageType > &dst)
dst.GetChannelCount()==2*src.GetCHannelCount() The result is not normalized!
virtual int CrossPowerSpectrum(const Image< InputStorageType > &src1, const Image< InputStorageType > &src2, Image< OutputStorageType > &dst1)
virtual int Normalize(Image< OutputStorageType > &dst)
Normalize output after transformation.
Wrapper to the fftw3 library adapted for 2D image filtering.
virtual int TransformReverse(const Image< OutputStorageType > &src, Image< InputStorageType > &dst)
Transform reverse, src must be of _SizeX,_OutSizeY,2.
class TimeMeasure contains functions for timing real time and cpu time.