using PixelType = unsigned int;
void
{
for (; !it.IsAtEnd(); ++it)
{
}
logF->SetInput(image);
logF->SetInPlace(true);
logF->Update();
image = logF->GetOutput();
image->DisconnectPipeline();
}
void
{
image->GetBufferedRegion(),
for (; !it.IsAtEnd(); ++it)
{
it.Set(std::log(1 + it.Get()));
}
},
nullptr);
}
int
main()
{
int result = EXIT_SUCCESS;
randomImageSource->SetSize(region.GetSize());
randomImageSource->SetNumberOfWorkUnits(1);
randomImageSource->Update();
image->DisconnectPipeline();
duplicator->SetInputImage(image);
duplicator->Update();
clonedImage->DisconnectPipeline();
log1xViaLogImageFilter(image);
log1xViaParallelizeImageRegion(clonedImage);
unsigned diffCount = 0;
for (; !it1.IsAtEnd(); ++it1, ++it2)
{
if (it1.Get() != it2.Get())
{
std::cerr << "Pixel values are different at index " << it1.GetIndex() << it1.Get() << " vs. " << it2.Get()
<< std::endl;
diffCount++;
result = EXIT_FAILURE;
}
}
if (diffCount == 0)
{
std::cout << "LogImageFilter and ParallelizeImageRegion generate the same result." << std::endl;
}
else
{
std::cout << "Discrepancy! " << diffCount << " pixels out of " << region.GetNumberOfPixels() << " are different."
<< std::endl;
}
return result;
}