📄 itkffttest.cxx
字号:
itk::VnlFFTRealToComplexConjugateImageFilter<float,2> ,
itk::FFTWRealToComplexConjugateImageFilter<float,2> >(SizeOfDimensions1)) != 0)
rval++;;
std::cerr << "VnlFFTWF:float,3 (4,4,4)"<< std::endl;
if((test_fft_rtc<float,3,
itk::VnlFFTRealToComplexConjugateImageFilter<float,3> ,
itk::FFTWRealToComplexConjugateImageFilter<float,3> >(SizeOfDimensions1)) != 0)
rval++;;
std::cerr << "VnlFFTWF:float,1 (3,5,4)" << std::endl;
if((test_fft_rtc<float,1,
itk::VnlFFTRealToComplexConjugateImageFilter<float,1> ,
itk::FFTWRealToComplexConjugateImageFilter<float,1> >(SizeOfDimensions2)) != 0)
rval++;;
std::cerr << "VnlFFTWF:float,2 (3,5,4)"<< std::endl;
if((test_fft_rtc<float,2,
itk::VnlFFTRealToComplexConjugateImageFilter<float,2> ,
itk::FFTWRealToComplexConjugateImageFilter<float,2> >(SizeOfDimensions2)) != 0)
rval++;;
std::cerr << "VnlFFTWF:float,3 (3,5,4)"<< std::endl;
if((test_fft_rtc<float,3,
itk::VnlFFTRealToComplexConjugateImageFilter<float,3> ,
itk::FFTWRealToComplexConjugateImageFilter<float,3> >(SizeOfDimensions2)) != 0)
rval++;;
return (rval == 0) ? 0 : -1;
}
#endif
#if defined(USE_FFTWD)
int itkFFTWD_FFTTest(int, char *[])
{
unsigned int SizeOfDimensions1[] = { 4,4,4 };
unsigned int SizeOfDimensions2[] = { 3,5,4 };
int rval = 0;
std::cerr << "FFTWD:double,1 (4,4,4)"<< std::endl;
if((test_fft<double,1,
itk::FFTWRealToComplexConjugateImageFilter<double,1> ,
itk::FFTWComplexConjugateToRealImageFilter<double,1> >(SizeOfDimensions1)) != 0)
rval++;;
std::cerr << "FFTWD:double,2 (4,4,4)"<< std::endl;
if((test_fft<double,2,
itk::FFTWRealToComplexConjugateImageFilter<double,2> ,
itk::FFTWComplexConjugateToRealImageFilter<double,2> >(SizeOfDimensions1)) != 0)
rval++;;
std::cerr << "FFTWD:double,3 (4,4,4)"<< std::endl;
if((test_fft<double,3,
itk::FFTWRealToComplexConjugateImageFilter<double,3> ,
itk::FFTWComplexConjugateToRealImageFilter<double,3> >(SizeOfDimensions1)) != 0)
rval++;;
std::cerr << "FFTWD:double,1 (3,5,4)"<< std::endl;
if((test_fft<double,1,
itk::FFTWRealToComplexConjugateImageFilter<double,1> ,
itk::FFTWComplexConjugateToRealImageFilter<double,1> >(SizeOfDimensions2)) != 0)
rval++;;
std::cerr << "FFTWD:double,2 (3,5,4)"<< std::endl;
if((test_fft<double,2,
itk::FFTWRealToComplexConjugateImageFilter<double,2> ,
itk::FFTWComplexConjugateToRealImageFilter<double,2> >(SizeOfDimensions2)) != 0)
rval++;;
std::cerr << "FFTWD:double,3 (3,5,4)"<< std::endl;
if((test_fft<double,3,
itk::FFTWRealToComplexConjugateImageFilter<double,3> ,
itk::FFTWComplexConjugateToRealImageFilter<double,3> >(SizeOfDimensions2)) != 0)
rval++;;
return (rval == 0) ? 0 : -1;
}
/*Compare FFT using VNL and FFTW Libraries. The test is performed for 2 3d array one of them
having the same dimension(4,4,4) and the other having different dimensions (3,4,5).
Images are created with different dimensions in the test function based on the second template argument and the size of these dimensions are taken from the array.The data types used are float and double. */
int itkVnlFFTWD_FFTTest(int, char *[])
{
unsigned int SizeOfDimensions1[] = { 4,4,4 };
unsigned int SizeOfDimensions2[] = { 3,5,4 };
int rval = 0;
std::cerr << "VnlFFTWD:double,1 (4,4,4)" << std::endl;
if((test_fft_rtc<double,1,
itk::VnlFFTRealToComplexConjugateImageFilter<double,1> ,
itk::FFTWRealToComplexConjugateImageFilter<double,1> >(SizeOfDimensions1)) != 0)
rval++;;
std::cerr << "VnlFFTWD:double,2 (4,4,4)"<< std::endl;
if((test_fft_rtc<double,2,
itk::VnlFFTRealToComplexConjugateImageFilter<double,2> ,
itk::FFTWRealToComplexConjugateImageFilter<double,2> >(SizeOfDimensions1)) != 0)
rval++;;
std::cerr << "VnlFFTWD:double,3 (4,4,4)"<< std::endl;
if((test_fft_rtc<double,3,
itk::VnlFFTRealToComplexConjugateImageFilter<double,3> ,
itk::FFTWRealToComplexConjugateImageFilter<double,3> >(SizeOfDimensions1)) != 0)
rval++;;
std::cerr << "VnlFFTWD:double,1 (3,5,4)" << std::endl;
if((test_fft_rtc<double,1,
itk::VnlFFTRealToComplexConjugateImageFilter<double,1> ,
itk::FFTWRealToComplexConjugateImageFilter<double,1> >(SizeOfDimensions2)) != 0)
rval++;;
std::cerr << "VnlFFTWD:double,2 (3,5,4)"<< std::endl;
if((test_fft_rtc<double,2,
itk::VnlFFTRealToComplexConjugateImageFilter<double,2> ,
itk::FFTWRealToComplexConjugateImageFilter<double,2> >(SizeOfDimensions2)) != 0)
rval++;;
std::cerr << "VnlFFTWD:double,3 (3,5,4)"<< std::endl;
if((test_fft_rtc<double,3,
itk::VnlFFTRealToComplexConjugateImageFilter<double,3> ,
itk::FFTWRealToComplexConjugateImageFilter<double,3> >(SizeOfDimensions2)) != 0)
rval++;;
return (rval == 0) ? 0 : -1;
}
#endif
#if defined(USE_SCSL)
/*Test FFT using SCSL Libraries. The test is performed for 2 3d array one of them
having the same size along all dimension(4,4,4) and the other having different sizes in all dimensions (3,4,5).
Images are created with different dimensions in the test function based on the second template argument and the size of these dimensions are taken from the array. The data types used are float and double. */
int itkSCSLFFTTest(int, char *[])
{
unsigned int SizeOfDimensions1[] = { 4,4,4 };
unsigned int SizeOfDimensions2[] = { 3,5,4 };
int rval = 0;
std::cerr << "SCSL:float,1 (4,4,4)" << std::endl;
if((test_fft<float,1,
itk::SCSLRealToComplexConjugateImageFilter<float,1> ,
itk::SCSLComplexConjugateToRealImageFilter<float,1> >(SizeOfDimensions1)) != 0)
rval++;;
std::cerr << "SCSL:float,2 (4,4,4)"<< std::endl;
if((test_fft<float,2,
itk::SCSLRealToComplexConjugateImageFilter<float,2> ,
itk::SCSLComplexConjugateToRealImageFilter<float,2> >(SizeOfDimensions1)) != 0)
rval++;;
std::cerr << "SCSL:float,3 (4,4,4)"<< std::endl;
if((test_fft<float,3,
itk::SCSLRealToComplexConjugateImageFilter<float,3> ,
itk::SCSLComplexConjugateToRealImageFilter<float,3> >(SizeOfDimensions1)) != 0)
rval++;;
std::cerr << "SCSL:double,1 (4,4,4)"<< std::endl;
if((test_fft<double,1,
itk::SCSLRealToComplexConjugateImageFilter<double,1> ,
itk::SCSLComplexConjugateToRealImageFilter<double,1> >(SizeOfDimensions1)) != 0)
rval++;;
std::cerr << "SCSL:double,2 (4,4,4)"<< std::endl;
if((test_fft<double,2,
itk::SCSLRealToComplexConjugateImageFilter<double,2> ,
itk::SCSLComplexConjugateToRealImageFilter<double,2> >(SizeOfDimensions1)) != 0)
rval++;;
std::cerr << "SCSL:double,3 (4,4,4)"<< std::endl;
if((test_fft<double,3,
itk::SCSLRealToComplexConjugateImageFilter<double,3> ,
itk::SCSLComplexConjugateToRealImageFilter<double,3> >(SizeOfDimensions1)) != 0)
rval++;;
std::cerr << "SCSL:float,1 (3,5,4)" << std::endl;
if((test_fft<float,1,
itk::SCSLRealToComplexConjugateImageFilter<float,1> ,
itk::SCSLComplexConjugateToRealImageFilter<float,1> >(SizeOfDimensions2)) != 0)
rval++;;
std::cerr << "SCSL:float,2 (3,5,4)"<< std::endl;
if((test_fft<float,2,
itk::SCSLRealToComplexConjugateImageFilter<float,2> ,
itk::SCSLComplexConjugateToRealImageFilter<float,2> >(SizeOfDimensions2)) != 0)
rval++;;
std::cerr << "SCSL:float,3 (3,5,4)"<< std::endl;
if((test_fft<float,3,
itk::SCSLRealToComplexConjugateImageFilter<float,3> ,
itk::SCSLComplexConjugateToRealImageFilter<float,3> >(SizeOfDimensions2)) != 0)
rval++;;
std::cerr << "SCSL:double,1 (3,5,4)"<< std::endl;
if((test_fft<double,1,
itk::SCSLRealToComplexConjugateImageFilter<double,1> ,
itk::SCSLComplexConjugateToRealImageFilter<double,1> >(SizeOfDimensions2)) != 0)
rval++;;
std::cerr << "SCSL:double,2 (3,5,4)"<< std::endl;
if((test_fft<double,2,
itk::SCSLRealToComplexConjugateImageFilter<double,2> ,
itk::SCSLComplexConjugateToRealImageFilter<double,2> >(SizeOfDimensions2)) != 0)
rval++;;
std::cerr << "SCSL:double,3 (3,5,4)"<< std::endl;
if((test_fft<double,3,
itk::SCSLRealToComplexConjugateImageFilter<double,3> ,
itk::SCSLComplexConjugateToRealImageFilter<double,3> >(SizeOfDimensions2)) != 0)
rval++;;
return rval == 0 ? EXIT_SUCCESS : EXIT_FAILURE;
}
/*Compare FFT using VNL and SCSL Libraries. The test is performed for 2 3d array one of them
having the same dimension(4,4,4) and the other having different dimensions (3,4,5).
Images are created with different dimensions in the test function based on the second template argument and the size of these dimensions are taken from the array.The data types used are float and double. */
int itkVnlSCSL_FFTTest(int, char *[])
{
unsigned int SizeOfDimensions1[] = { 4,4,4 };
unsigned int SizeOfDimensions2[] = { 3,5,4 };
int rval = 0;
std::cerr << "VnlSCSL:float,1 (4,4,4)" << std::endl;
if((test_fft_rtc<float,1,
itk::VnlFFTRealToComplexConjugateImageFilter<float,1> ,
itk::SCSLRealToComplexConjugateImageFilter<float,1> >(SizeOfDimensions1)) != 0)
rval++;;
std::cerr << "VnlSCSL:float,2 (4,4,4)"<< std::endl;
if((test_fft_rtc<float,2,
itk::VnlFFTRealToComplexConjugateImageFilter<float,2> ,
itk::SCSLRealToComplexConjugateImageFilter<float,2> >(SizeOfDimensions1)) != 0)
rval++;;
std::cerr << "VnlSCSL:float,3 (4,4,4)"<< std::endl;
if((test_fft_rtc<float,3,
itk::VnlFFTRealToComplexConjugateImageFilter<float,3> ,
itk::SCSLRealToComplexConjugateImageFilter<float,3> >(SizeOfDimensions1)) != 0)
rval++;;
std::cerr << "VnlSCSL:float,1 (3,5,4)" << std::endl;
if((test_fft_rtc<float,1,
itk::VnlFFTRealToComplexConjugateImageFilter<float,1> ,
itk::SCSLRealToComplexConjugateImageFilter<float,1> >(SizeOfDimensions2)) != 0)
rval++;;
std::cerr << "VnlSCSL:float,2 (3,5,4)"<< std::endl;
if((test_fft_rtc<float,2,
itk::VnlFFTRealToComplexConjugateImageFilter<float,2> ,
itk::SCSLRealToComplexConjugateImageFilter<float,2> >(SizeOfDimensions2)) != 0)
rval++;;
std::cerr << "VnlSCSL:float,3 (3,5,4)"<< std::endl;
if((test_fft_rtc<float,3,
itk::VnlFFTRealToComplexConjugateImageFilter<float,3> ,
itk::SCSLRealToComplexConjugateImageFilter<float,3> >(SizeOfDimensions2)) != 0)
rval++;;
std::cerr << "VnlSCSL:double,1 (4,4,4)" << std::endl;
if((test_fft_rtc<double,1,
itk::VnlFFTRealToComplexConjugateImageFilter<double,1> ,
itk::SCSLRealToComplexConjugateImageFilter<double,1> >(SizeOfDimensions1)) != 0)
rval++;;
std::cerr << "VnlSCSL:double,2 (4,4,4)"<< std::endl;
if((test_fft_rtc<double,2,
itk::VnlFFTRealToComplexConjugateImageFilter<double,2> ,
itk::SCSLRealToComplexConjugateImageFilter<double,2> >(SizeOfDimensions1)) != 0)
rval++;;
std::cerr << "VnlSCSL:double,3 (4,4,4)"<< std::endl;
if((test_fft_rtc<double,3,
itk::VnlFFTRealToComplexConjugateImageFilter<double,3> ,
itk::SCSLRealToComplexConjugateImageFilter<double,3> >(SizeOfDimensions1)) != 0)
rval++;;
std::cerr << "VnlSCSL:double,1 (3,5,4)" << std::endl;
if((test_fft_rtc<double,1,
itk::VnlFFTRealToComplexConjugateImageFilter<double,1> ,
itk::SCSLRealToComplexConjugateImageFilter<double,1> >(SizeOfDimensions2)) != 0)
rval++;;
std::cerr << "VnlSCSL:double,2 (3,5,4)"<< std::endl;
if((test_fft_rtc<double,2,
itk::VnlFFTRealToComplexConjugateImageFilter<double,2> ,
itk::SCSLRealToComplexConjugateImageFilter<double,2> >(SizeOfDimensions2)) != 0)
rval++;;
std::cerr << "VnlSCSL:double,3 (3,5,4)"<< std::endl;
if((test_fft_rtc<double,3,
itk::VnlFFTRealToComplexConjugateImageFilter<double,3> ,
itk::SCSLRealToComplexConjugateImageFilter<double,3> >(SizeOfDimensions2)) != 0)
rval++;;
return (rval == 0) ? 0 : -1;
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -