[ITK-users] Passing adapters to a metric
Dženan Zukić
dzenanz at gmail.com
Tue Feb 9 10:47:55 EST 2016
You lack a reader->Update(); call before reader->GetOutput(); call. Without
this the region passed to ThreadedDomainPartitioner is 0,0 which causes the
exception.
Regards
On Mon, Feb 8, 2016 at 11:28 AM, artioml <artioml at post.bgu.ac.il> wrote:
> Hello,
>
> I want to calculate MSE between the red and the green channel of a given
> image.
> I have used an adapter as suggested in the examples section. But the metric
> throws an exception.
>
> What does the error mean? Anyone has an idea how to fix the problem? Thank
> you very much!
>
> Here is the error message:
>
> terminate called after throwing an instance of 'itk::ExceptionObject'
> what():
>
> /home/art/SourceCode/InsightToolkit-4.8.2/Modules/Core/Common/include/itkDomainThreader.hxx:113:
> itk::ERROR:
> MeanSquaresImageToImageMetricv4GetValueAndDerivativeThreader(0x1c32950): A
> subclass of ThreadedDomainPartitioner::PartitionDomainreturned more
> subdomains than were requested
>
> Here is the code:
>
> typedef itk::RGBPixel<float> InputPixelType;
> const unsigned int Dimension = 2;
> typedef itk::Image< InputPixelType, Dimension > ImageType;
>
> typedef itk::ImageAdaptor< ImageType, RedChannelPixelAccessor >
> RedImageAdaptorType;
> RedImageAdaptorType::Pointer red_adaptor = RedImageAdaptorType::New();
> typedef itk::ImageAdaptor< ImageType, GreenChannelPixelAccessor >
> GreenImageAdaptorType;
> GreenImageAdaptorType::Pointer green_adaptor =
> GreenImageAdaptorType::New();
>
> typedef itk::ImageFileReader< ImageType > ReaderType;
> ReaderType::Pointer reader = ReaderType::New();
> reader->SetFileName( argv[1] );
> ImageType::Pointer imageRGB = reader->GetOutput();
>
> red_adaptor->SetImage( imageRGB );
> green_adaptor->SetImage( imageRGB );
>
> typedef itk::MeanSquaresImageToImageMetricv4< RedImageAdaptorType,
> GreenImageAdaptorType > MetricType;
> MetricType::Pointer metric = MetricType::New();
>
> metric->SetFixedImage(red_adaptor);
> metric->SetMovingImage(green_adaptor);
> metric->SetMaximumNumberOfThreads(1);
> metric->Initialize();
> std::cout << "Result: " << metric->GetValue() << std::endl;
>
>
>
> --
> View this message in context:
> http://itk-users.7.n7.nabble.com/Passing-adapters-to-a-metric-tp36755.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.php
>
> 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://public.kitware.com/mailman/listinfo/insight-users
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/insight-users/attachments/20160209/bf07cf80/attachment.html>
More information about the Insight-users
mailing list