IteratorType it(input1, input1->GetLargestPossibleRegion());
// typedef input2
- typename ImageType::Pointer input2 = NULL;
+ typename ImageType::Pointer input2 = ITK_NULLPTR;
IteratorType it2;
// Special case for normalisation
output->SetRegions(input1->GetLargestPossibleRegion());
output->SetOrigin(input1->GetOrigin());
output->SetSpacing(input1->GetSpacing());
+ output->SetDirection(input1->GetDirection());
output->Allocate();
// Set output iterator
typedef itk::ImageRegionIterator<OutputImageType> IteratorOutputType;
break;
case 2: // Divide
while (!ito.IsAtEnd()) {
- if (it1.Get() != 0)
+ if (it2.Get() != 0)
ito.Set(PixelTypeDownCast<double, PixelType>((double)it1.Get() / (double)it2.Get()));
else ito.Set(mDefaultPixelValue);
++it1;
case 8: // Relative Difference
while (!ito.IsAtEnd()) {
if (it1.Get() != 0) ito.Set(PixelTypeDownCast<double, PixelType>(((double)it1.Get()-(double)it2.Get()))/(double)it1.Get());
- else ito.Set(0.0);
+ else ito.Set(mDefaultPixelValue);
++it1;
++it2;
++ito;
++ito;
}
break;
- case 7: // Log
+ case 7: // ln
while (!it.IsAtEnd()) {
if (it.Get() > 0)
ito.Set(PixelTypeDownCast<double, PixelType>(log((double)it.Get())));