[Insight-users] OTSU test code
Luis Ibanez
luis.ibanez@kitware.com
Fri, 20 Sep 2002 18:11:56 -0400
Hi Uday,
The IO factories were added as default several weeks ago.
(for PNG, Meta, Dicom and VTK).
What version of ITK are you using ?
if it is a CVS checkout, how recent it is ?
You may want to risk updating from cvs. Just
double check the ITK Dashboard before updating
to make sure that you get a green version.
Thanks,
Luis
====================================================================
Uday Kurkure wrote:
>
> Hi Louis,
>
> I am wondering how I forgot about Update() function. Thanks for
> explaining me the pipeline. Will keep that in mind.
> I added the Update() function and removed the writer part and BINGO! it
> is working perfectly. But I get run-time error if I don't explicitly
> specify the IO object/factory. It's fine with me to explicitly specify
> them but since you mentioned that now we don't need to specify them, I
> am curious how to make it work. Can you throw some light on it?
>
> Thanks,
> Uday Kurkure.
>
>
>
>> Also, note that for PNG, VTK, Meta and Dicom you no
>> longer need to explicity specify the IO object nor
>> the IO factory. Default factories for these formats
>> are now registered at construction time in the IO
>> framework.
>>
>> The following code should be enough:
>>
>>
>>
>> reader->SetFileName("input.png");
>> reader->Update();
>> calculator->SetInput( reader->GetOutput() );
>> calculator->Compute();
>> PixelType threshold = calculator->GetThreshold();
>>
>>
>>
>>
>> Please let us know if you find further problems
>>
>> Thanks
>>
>>
>> Luis
>>
>>
>> ==========================================
>>
>>
>> Uday Kurkure wrote:
>>
>>>
>>>
>>> Hello all,
>>>
>>> Thanks Louis and Sayan for your suggestions.
>>>
>>> I could successfully run the OTSU test code. Now I have modified it
>>> to take a PNG image as input. It is working fine for this part of code:
>>>
>>> //----------------------------------------------------------------
>>> // Read in the image
>>> itk::PNGImageIO::Pointer io;
>>> io = itk::PNGImageIO::New();
>>> typedef unsigned char PixelType;
>>> typedef itk::Image<PixelType, 2> myImage;
>>> itk::ImageFileReader<myImage>::Pointer input
>>> = itk::ImageFileReader<myImage>::New();
>>> input->SetFileName(av[0]);
>>> input->SetImageIO(io);// comment it if using factory
>>>
>>> // write the input image
>>> itk::ImageFileWriter<myImage>::Pointer writer1;
>>> writer1 = itk::ImageFileWriter<myImage>::New();
>>> writer1->SetInput(input->GetOutput());
>>> writer1->SetFileName("myinput.png");
>>> writer1->SetImageIO(io);// comment it if using factory
>>> writer1->Write();
>>> // Create and initialize the calculator
>>> CalculatorType::Pointer calculator = CalculatorType::New();
>>> calculator->SetImage(input->GetOutput());
>>> calculator->SetNumberOfHistogramBins( 256);
>>> calculator->Compute();
>>> //--------------------------------------------------------------
>>>
>>> But if I don't write out the image (comment the writer1 code lines)
>>> it always give threshold 0. I want to remove the writing part. Can
>>> some one suggest something.
>>>
>>> Thanks,
>>> Uday Kurkure.
>>> _______________________________________________
>>> Insight-users mailing list
>>> Insight-users@public.kitware.com
>>> http://public.kitware.com/mailman/listinfo/insight-users
>>>
>>
>>
>>
>
> _______________________________________________
> Insight-users mailing list
> Insight-users@public.kitware.com
> http://public.kitware.com/mailman/listinfo/insight-users
>