[Insight-users] Problem with PasteImageFilter
    Robert Jason Harris 
    rjharris at fas.harvard.edu
       
    Fri Jul 13 12:11:28 EDT 2007
    
    
  
Hi All,
I am trying to filter an image region by region.  For this purpose, I declare a
filter, the RegionOfInterestFitler, put my image through it, ThresholdFilter
the output of that, and then try to paste the output of the ThresholdFilter
back onto the image.  My (relevant) code is as follows:
size is the size of the image (2-D), size_box is the size of the (rectangular)
regions I want to filter the image by.
// all the stuff before this
	paste_filter->SetDestinationImage(reader->GetOutput());
	while((j < size[1]/size_box[1])){
		while((i < size[0]/size_box[0])){
			start[0] = i * size_box[0];
			start[1] = j * size_box[1];
			desiredRegion.SetIndex(start);
			filter->SetRegionOfInterest(desiredRegion);
			filter->SetInput(reader->GetOutput());
			region_of_interest = filter->GetOutput();
		   // Now, we have filtered out all stuff not in
          // our region of interest and put the filtered
          // perform statistics
			th_filter->SetInput(region_of_interest);
			th_filter->SetOutsideValue(0);
			th_filter->ThresholdBelow((something based on stats of image));
			th_filter->Update();
			paste_filter->SetSourceImage(th_filter->GetOutput());
			paste_filter->SetDestinationIndex(start);
			paste_filter->UpdateLargestPossibleRegion();
			i++;
		}
		i=0;
		j++;
	}
	WriterType::Pointer writer = WriterType::New();
	writer->SetFileName(argv[2]);
	writer->SetInput(paste_filter->GetOutput());
	try{
		writer->Update();
	}
	catch( itk::ExceptionObject & exp){
		std::cerr<<"Exception caught at writer!"<<endl;
		std::cerr<< exp <<endl;
	}
When I do this, all I get is the same as my input image.  And, when I changed
the paster to take as the Destination a new image (declared within the program,
and blank), the output was a blank image.  So, I'm kinda stuck.  Any help is
appreciated.
Thanks!
Robert Harris
    
    
More information about the Insight-users
mailing list