[Insight-users] Bug in OtsuThresholdImageFilter?
Frederic Perez
fredericpcx at gmail.com
Thu Aug 19 08:54:24 EDT 2010
Hello Roman,
On Thu, Aug 19, 2010 at 2:45 PM, Roman Grothausmann <
roman.grothausmann at helmholtz-berlin.de> wrote:
> Dear mailing list members,
>
>
> GetThreshold() from OtsuThresholdImageFilter in the code below does not
> return any value. Is that a bug?
>
According to the documentation (
http://www.itk.org/Doxygen320/html/classitk_1_1OtsuThresholdImageFilter.html#a7c5fd26660c92354986d61ff8770cf86
),
template<class TInputImage , class TOutputImage >
virtual InputPixelType<http://www.itk.org/Doxygen320/html/classitk_1_1OtsuThresholdImageFilter.html#a3495c875550c2ae4ed950ef5e54567a1>
itk::OtsuThresholdImageFilter<http://www.itk.org/Doxygen320/html/classitk_1_1OtsuThresholdImageFilter.html><
TInputImage, TOutputImage >::GetThreshold ( ) const [virtual]
you should get an InputPixelType. Since you have instantiated unsigned chars,
perhaps you are getting a character that doesn't "show up."
Try debugging, or do something like
std::cout << "Threshold: " << static_cast<unsigned
int>(filter->GetThreshold()) << std::endl;
Regards,
Frederic Perez
> Any help is very much appreciated
> Roman
>
>
> ________________________________________
>
> #include <itkImageFileReader.h>
> #include <itkImageFileWriter.h>
>
> #include <itkOtsuThresholdImageFilter.h>
> #include "itkFilterWatcher2.h"
>
> int main( int argc, char * argv[] )
> {
> if( argc != 4 )
> {
> std::cerr << "Usage: " << argv[0];
> std::cerr << " inputImage";
> std::cerr << " outputImage";
> std::cerr << " #_of_hist-bins";
> std::cerr << std::endl;
> return EXIT_FAILURE;
> }
>
> typedef unsigned char InputPixelType;
> typedef unsigned char OutputPixelType;
>
> const unsigned int Dimension = 3;
>
> typedef itk::Image<InputPixelType, Dimension> InputImageType;
> typedef itk::Image<OutputPixelType, Dimension> OutputImageType;
>
> typedef itk::ImageFileReader<InputImageType> ReaderType;
> typedef itk::ImageFileWriter<OutputImageType> WriterType;
> WriterType::Pointer writer = WriterType::New();
>
> ReaderType::Pointer reader = ReaderType::New();
> reader->SetFileName(argv[1]);
>
> typedef itk::OtsuThresholdImageFilter<InputImageType, OutputImageType>
> FilterType;
> FilterType::Pointer filter = FilterType::New();
>
>
> filter->SetNumberOfHistogramBins(atoi(argv[3]));
>
> filter->SetInput(reader->GetOutput());
> FilterWatcher watcher(filter, "filter");
> filter->Update();
>
> std::cout << "Threshold: " << filter->GetThreshold() << std::endl;
>
> writer->SetFileName(argv[2]);
> writer->SetInput(filter->GetOutput());
> writer->Update();
>
> return EXIT_SUCCESS;
> }
>
>
>
>
> --
> Roman Grothausmann
>
> Helmholtz-Zentrum Berlin für Materialien und Energie GmbH
> Bereich Funktionale Materialien
> Institut für angewandte Materialforschung
> Hahn-Meitner-Platz 1
> D-14109 Berlin
>
> Tel.: +49-(0)30-8062-2816
> Fax.: +49-(0)30-8062-3059
>
> Vorsitzender des Aufsichtsrats: Prof. Dr. Dr. h.c. mult. Joachim Treusch
> Stellvertretende Vorsitzende: Dr. Beatrix Vierkorn-Rudolph
> Geschäftsführer: Prof. Dr. Anke Rita Kaysser-Pyzalla, Prof. Dr. Dr. h.c.
> Wolfgang Eberhardt, Dr. Ulrich Breuer
> Sitz der Gesellschaft: Berlin
> Handelsregister: AG Charlottenburg, 89 HRB 5583
>
> _____________________________________
> 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
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.itk.org/pipermail/insight-users/attachments/20100819/b558f734/attachment.htm>
More information about the Insight-users
mailing list