Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ImageType::Pointer randomscaler(ImageType::Pointer inputimage, ImageType::RegionType iterregion)
- {
- typedef itk::MinimumMaximumImageCalculator <ImageType> ImageCalculatorFilterType;
- ImageCalculatorFilterType::Pointer imageCalculatorFilter = ImageCalculatorFilterType::New ();
- imageCalculatorFilter->SetImage( inputimage );
- imageCalculatorFilter->Compute();
- PixelType Imin = imageCalculatorFilter->GetMinimum();
- PixelType Imax = imageCalculatorFilter->GetMaximum();
- PixelType Omin = 0;
- PixelType Omax = 1;
- typedef itk::ImageRegionIterator< ImageType > IteratorType;
- IteratorType imageIterator(inputimage,iterregion);
- imageIterator.GoToBegin();
- std::cout << "image iterator at end?" << imageIterator.IsAtEnd() << std::endl; //gives 1 always
- while(!imageIterator.IsAtEnd())
- {
- PixelType inputPixel = imageIterator.Get();
- PixelType outputPixel = (inputPixel-Imin)*((Omax-Omin)/(Imax-Imin))+Omin;
- imageIterator.Set(outputPixel);
- ++imageIterator;
- }
- ImageType::Pointer outputimage = inputimage;
- return outputimage;
- }
- int main(int argc , char *argv[])
- {
- if( argc < 3 )
- {
- std::cerr << "Usage: " << std::endl;
- std::cerr << argv[1] << " inputImageFile" << std::endl;
- std::cerr << argv[2] << " outputImageFile" << std::endl;
- return EXIT_FAILURE;
- }
- ReaderType::Pointer reader = ReaderType::New();
- reader->SetFileName(argv[1]);
- reader->Update();
- ImageType::Pointer image = reader->GetOutput();
- ImageType::RegionType region = image->GetLargestPossibleRegion();
- ImageType::SizeType size = region.GetSize();
- ImageType::IndexType volumestart;
- volumestart = image->GetLargestPossibleRegion().GetIndex();
- int nrofloops = size[ImageDimension-1];
- size[ImageDimension-1] = 0;
- region.SetSize(size);
- ImageType::Pointer scaledImage;
- scaledImage = image;
- for(int i=0; i < nrofloops; i++)
- {
- volumestart[ImageDimension-1] = i;
- region.SetIndex(volumestart);
- scaledImage = randomscaler(scaledImage, region);
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement