[Insight-users] ExtractImageFilter - newbie needs help!
Luis Ibanez
luis.ibanez at kitware.com
Mon Jun 28 23:40:56 EDT 2004
Hi Ramzy,
Welcome to ITK !,
as a newcomer you are strongly encouraged to follow the tour
of the Welcoming package:
http://www.itk.org/HTML/Welcome.htm
----
Regarding the problem you report with JPEG, this seems to be
a bug in the current JPEG writer with images in 16bits per pixel.
Please use "unsigned char" as pixel type in the meantime, or
us a fileformat different from JPEG.
We are taking a look at the 16bit problem with the JPEG writer.
Let us know if you find further problems,
Thanks
Luis
--------------------
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