[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