diff --git a/Code/BasicFilters/otbLogPolarResampleImageFilter.h b/Code/BasicFilters/otbLogPolarResampleImageFilter.h index 2fe4ad4e051076ddcd784132de423c9fecd94971..81dc020e1855fb569766a4c785c827795694eb18 100644 --- a/Code/BasicFilters/otbLogPolarResampleImageFilter.h +++ b/Code/BasicFilters/otbLogPolarResampleImageFilter.h @@ -133,6 +133,11 @@ public: /** Get the Radial number of samples. */ itkGetConstReferenceMacro(RadialNumberOfSamples, double); + /** Set the Angular number of samples. */ + itkSetMacro(AngularNumberOfSamples, double); + /** Get the Angular number of samples. */ + itkGetConstReferenceMacro(AngularNumberOfSamples, double); + /** Set the Sigma value. */ itkSetMacro(Sigma, double); /** Get the Sigma value. */ diff --git a/Code/BasicFilters/otbLogPolarResampleImageFilter.txx b/Code/BasicFilters/otbLogPolarResampleImageFilter.txx index db91fd29c0960da38f17bdd7947af3f8116e28b6..e3806f6e6749bf58c79f9b5320eb8f255cdf0c13 100644 --- a/Code/BasicFilters/otbLogPolarResampleImageFilter.txx +++ b/Code/BasicFilters/otbLogPolarResampleImageFilter.txx @@ -288,25 +288,24 @@ LogPolarResampleImageFilter<TInputImage,TInterpolator> itkExceptionMacro(<< "LogPolarResampleImageFilter::GenerateOutputInformation() Image size msut be greater than zero for the Radial part"<< std::endl); } - m_RadialStep = log(Radial_max) / m_RadialNumberOfSamples; - double bx = log(m_RadialNumberOfSamples) / log(2.0); if(int(bx)!=bx) { m_RadialNumberOfSamples = pow(2,int(bx)+1); } + m_RadialStep = log(Radial_max) / m_RadialNumberOfSamples; if( m_AngularNumberOfSamples ==0 ) { itkExceptionMacro(<< "LogPolarResampleImageFilter::GenerateOutputInformation() Image size msut be greater than zero for the Angular part"); } - m_AngularStep = Angular_max / m_AngularNumberOfSamples; double by = log(m_AngularNumberOfSamples) / log(2.0); if(int(by)!=by) { m_AngularNumberOfSamples = pow(2,int(by)+1); } + m_AngularStep = Angular_max / m_AngularNumberOfSamples; Size[0] = static_cast<SizeValueType>(m_AngularNumberOfSamples); Size[1] = static_cast<SizeValueType>(m_RadialNumberOfSamples); diff --git a/Testing/Code/BasicFilters/otbLogPolarResampleImageFilter.cxx b/Testing/Code/BasicFilters/otbLogPolarResampleImageFilter.cxx index 6ddcc8fa975233339e3a5c82d81b46f6f828306c..d03881f1fee24655bbd8309b55775740bb4ab4c3 100644 --- a/Testing/Code/BasicFilters/otbLogPolarResampleImageFilter.cxx +++ b/Testing/Code/BasicFilters/otbLogPolarResampleImageFilter.cxx @@ -59,6 +59,10 @@ int otbLogPolarResampleImageFilter(int argc, char* argv[]) writer->SetFileName( outputFilename ); LogPolarImage->SetInput( reader->GetOutput() ); + LogPolarImage->SetIsOriginAtCenter(true); + LogPolarImage->SetAngularNumberOfSamples(512); + LogPolarImage->SetRadialNumberOfSamples(513); + writer->SetInput( LogPolarImage->GetOutput() ); writer->Update();