[Insight-users] Median filter on Volume: Performance
sacrif
markus_m at gmx.net
Wed Feb 23 13:19:49 EST 2011
Hi Gaëtan!
Hi John!
Thank you for your replies! I really used the Debug mode, and the
computation already accelarated significantly with RelDebInfo compilation.
For the previous test run I used a volume of 96^3 and a filter of 10^3. Now
I am running a volume with 256^256^128 and a filter of 20^3. This is running
for 30 minutes now. So I still hope to find a faster solution. Maybe with
the RankImageFilter.
Are there any examples on the usage of the RankImageFIlter. Especially on
how to define the neighborhood? At least I could not find any ones included
which are part of the ITK-Examples.
Regards,
Mark
Gaëtan Lehmann-2 wrote:
>
>
> Hi Mark,
>
> What is the image size you are trying to filter?
>
> Please make sure that your application is built in Release mode - this
> can make a HUGE difference.
>
> For the efficiency and the spherical neighborhood, you may want to try
> the RankImageFilter which is in the Review directory.
> For large neighborhoods, it may improve significantly the performance.
>
> Regards,
>
> Gaëtan
>
>
>
> Le 23 févr. 11 à 14:36, sacrif a écrit :
>
>>
>> Hello!
>>
>> Actually I simply want to load a volume, run a median filter on it
>> and write
>> the resulting volume back to disk. Therefore I implemented the
>> following
>> code:
>>
>>
>> typedef signed short PixelType;
>> static const unsigned int Dimension = 3;
>> typedef itk::Image<PixelType, Dimension> InputImageType;
>> typedef itk::Image<PixelType, Dimension> OutputImageType;
>> typedef itk::ImageFileReader<InputImageType> ReaderType;
>> typedef itk::ImageFileWriter< InputImageType > WriterType;
>> typedef itk::MedianImageFilter< InputImageType, OutputImageType >
>> MedianFilterType;
>>
>> void MyClass::createMedianHdrFile(std::string filename)
>> {
>> ReaderType::Pointer reader = ReaderType::New();
>> reader->SetFileName(filename.c_str());
>>
>> MedianFilterType::Pointer medianFilter = MedianFilterType::New();
>> InputImageType::SizeType indexRadius;
>> indexRadius[0] = 10; // radius along x
>> indexRadius[1] = 10; // radius along y
>> indexRadius[2] = 10; // radius along z
>> medianFilter->SetRadius( indexRadius );
>> medianFilter->SetInput(reader->GetOutput());
>>
>> std::string fnNoEnding = getFilenameWithErasedEnding(filename,
>> ".hdr");
>> std::string fnNewEnding = getFilenameWithNewEnding(fnNoEnding,
>> "_Median.hdr");
>>
>> WriterType::Pointer writer = WriterType::New();
>> writer->SetFileName( fnNewEnding.c_str());
>> writer->SetInput( medianFilter->GetOutput() );
>> writer->Update();
>> cout << "Median End" << endl;
>> }
>>
>>
>> Basically this works if I use a very small filter with
>> "indexRadius[0/1/2] =
>> 1;". However, as soon as I use "indexRadius[0/1/2] = 10;" the
>> calculation
>> seems to take for ever.
>> In the meanwhile the program ran for approximately 3 hours and did not
>> finish yet. Is it really possible that the calculation of a "median
>> volume"
>> takes such a long time? And is there any way to reduce this time span?
>>
>> My input and output volume are in the Analyze format. For the
>> current test
>> run my input and output volume dimensions are 96x96x96 and the
>> filter size
>> is 10x10x10. However, I would also like to create "median volumes"
>> of even
>> larger data sets and with larger Filter dimensions.
>> The test input volume min and max intensity are -1093 and 1086,
>> respectively.
>>
>> Additionally I wanted to ask whether there is a simple way to run
>> apply a
>> spherical median filter of a certain radius instead of using the
>> cuboid
>> defined by "indexRadius[0/1/2]".
>>
>> Thank you for your help & Kind regards
>> Mark
>> --
>> View this message in context:
>> http://old.nabble.com/Median-filter-on-Volume%3A-Performance-tp30994977p30994977.html
>> Sent from the ITK - Users mailing list archive at Nabble.com.
>>
>> _____________________________________
>> Powered by www.kitware.com
>>
>> Visit other Kitware open-source projects at
>> http://www.kitware.com/opensource/opensource.html
>>
>> Kitware offers ITK Training Courses, for more information visit:
>> http://www.kitware.com/products/protraining.html
>>
>> Please keep messages on-topic and check the ITK FAQ at:
>> http://www.itk.org/Wiki/ITK_FAQ
>>
>> Follow this link to subscribe/unsubscribe:
>> http://www.itk.org/mailman/listinfo/insight-users
>
> --
> Gaëtan Lehmann
> Biologie du Développement et de la Reproduction
> INRA de Jouy-en-Josas (France)
> tel: +33 1 34 65 29 66 fax: 01 34 65 29 09
> http://voxel.jouy.inra.fr http://www.itk.org
> http://www.mandriva.org http://www.bepo.fr
>
>
>
> _____________________________________
> Powered by www.kitware.com
>
> Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
>
> Kitware offers ITK Training Courses, for more information visit:
> http://www.kitware.com/products/protraining.html
>
> Please keep messages on-topic and check the ITK FAQ at:
> http://www.itk.org/Wiki/ITK_FAQ
>
> Follow this link to subscribe/unsubscribe:
> http://www.itk.org/mailman/listinfo/insight-users
>
>
--
View this message in context: http://old.nabble.com/Median-filter-on-Volume%3A-Performance-tp30994977p30997534.html
Sent from the ITK - Users mailing list archive at Nabble.com.
More information about the Insight-users
mailing list