[Insight-users] ExtractImageFilter - newbie needs help!

Joshua Cates cates at sci.utah.edu
Tue Jun 29 12:36:58 EDT 2004


Hi Ramzy,

Have you tried itkCropImageFilter?  It may save you some trouble.

Josh.

______________________________
 Josh Cates			
 Scientific Computing and Imaging Institute
 University of Utah


On Tue, 29 Jun 2004, Ramzy Darwish wrote:

> Hello,
> I am VERY new to ITK.
> 
> I have used VTK for about 8 months now and am getting the hang of it and I 
> would like to get the hang of ITK as well.
> 
> I am trying to modify examples to get my results but it is not working 
> correctly.
> 
> Using Examples\IO\ImageReadExtractWrite.cxx as a starting point, I am trying 
> to crop a JPEG image by user specified dimensions through a FLTK UI.
> 
> Now I can get the desired dimensions and stuff, but then when I apply the 
> filter, it comes back incorrectly. It seems as though different regions of 
> the image are superimposed upon each other. Also, the image seems like there 
> are missing pixels or something. I had this problem with VTK in reading 
> different endian-ed images (big -> little), but I don't think this is my 
> problem.
> 
> I really don't know where to begin. I don't think that using JPEGs is the 
> problem either, but as I said I am very new.
> 
> I am enclosing the code I am trying to use.
> 
> Please help me!
> 
> Thank you,
> Ramzy Darwish
> 
> /*******************************************************************
> int ITKWrapper::CropImage(char *fname, int x, int y, int w, int h)
> {
>   std::cout << "Cropping image: " << x << ", " << y << ", " << w << ", " << 
> h << endl;
> 
>   typedef unsigned short        InputPixelType;
>   typedef unsigned short        OutputPixelType;
> 
>   typedef itk::Image< InputPixelType,  2 >    InputImageType;
>   typedef itk::Image< OutputPixelType, 2 >    OutputImageType;
> 
>   typedef itk::ImageFileReader< InputImageType  >  ReaderType;
>   typedef itk::ImageFileWriter< OutputImageType >  WriterType;
> 
>   const char * inputFilename  = "IM000018.jpg";
>   const char * outputFilename = "tmp.jpg";
> 
>   ReaderType::Pointer reader = ReaderType::New();
>   WriterType::Pointer writer = WriterType::New();
> 
>   reader->SetFileName( inputFilename  );
>   writer->SetFileName( outputFilename );
> 
>   typedef itk::ExtractImageFilter< InputImageType, OutputImageType > 
> FilterType;
>   FilterType::Pointer filter = FilterType::New();
> 
>   reader->Update();
>   InputImageType::RegionType inputRegion =
>            reader->GetOutput()->GetLargestPossibleRegion();
>   InputImageType::SizeType size = inputRegion.GetSize();
>   size[0] = 100;
>   size[1] = 100;
>   size[2] = 0;
> 
>   InputImageType::IndexType start = inputRegion.GetIndex();
>   //const unsigned int sliceNumber = atoi( argv[3] );
>   start[0] = 100;
>   start[1] = 100;
>   //start[2] = sliceNumber;
>   InputImageType::RegionType desiredRegion;
>   desiredRegion.SetSize(  size  );
>   desiredRegion.SetIndex( start );
>   filter->SetExtractionRegion( desiredRegion );
>   filter->SetInput( reader->GetOutput() );
>   filter->Update();
>   writer->SetInput( filter->GetOutput() );
> 
>   try
>     {
>     writer->Update();
>     }
>   catch( itk::ExceptionObject & err )
>     {
>     std::cout << "ExceptionObject caught !" << std::endl;
>     std::cout << err.what() << std::endl;
>     return -1;
>     }
> 
>   return 0;
> }
> *******************************************************/
> 
> _________________________________________________________________
> MSN 9 Dial-up Internet Access fights spam and pop-ups – now 3 months FREE! 
> http://join.msn.click-url.com/go/onm00200361ave/direct/01/
> 
> _______________________________________________
> Insight-users mailing list
> Insight-users at itk.org
> http://www.itk.org/mailman/listinfo/insight-users
> 



More information about the Insight-users mailing list