[vtkusers] Writing a JPEG from vtkActor

Richard Layman mdl_126 at hotmail.com
Tue Dec 20 11:08:24 EST 2005




>From: Amy Squillacote <amy.squillacote at kitware.com>
>To: Dominik Szczerba <domi at vision.ee.ethz.ch>
>CC: vtkusers at vtk.org
>Subject: Re: [vtkusers] Writing a JPEG from vtkActor
>Date: Tue, 20 Dec 2005 11:00:43 -0500
>
>At 10:35 AM 12/20/2005, Dominik Szczerba wrote:
>>Hello,
>>Even if I change the date to point data I am not succesful with either
>>Cast or ShiftScale. Please see below:
>>
>>//read in
>>   vtkStructuredPointsReader* reader = vtkStructuredPointsReader::New();
>>   reader->SetFileName(argv[1]);
>>   vtkStructuredPoints* grid = reader->GetOutput();
>>   grid->Update();
>>
>>//print some info
>>   unsigned long MEM = grid->GetActualMemorySize();//in kB
>>   cout << "mem=" << MEM << endl;
>>   int NP = grid->GetNumberOfPoints();
>>   cout << "NP=" << NP << endl;
>>   int NCELLS = grid->GetNumberOfCells();
>>   cout << "NCELLS=" << NCELLS << endl;
>>   double range[2];
>>   grid->GetPointData()->GetScalars("vx")->GetRange(range);
>>   cerr << "range " << range[0] << " " << range[1] << endl;
>>
>>   grid->GetPointData()->SetActiveScalars("vx");
>>
>>   vtkImageShiftScale *iss = vtkImageShiftScale::New();
>>   iss->SetInput(grid);
>>   iss->SetOutputScalarTypeToUnsignedChar();
>>   iss->SetShift(-range[0]);
>>   iss->SetScale((range[1] - range[0]) / 256.0);
>
>I just realized I did the division backwards in this step.  You should be 
>dividing 256 by the difference in the minimum and maximum range values.
>
>iss->SetScale(256.0 / (range[1] - range[0]));


I always have to check the source code to see which way it should go. Could 
I suggest adding a simpler API like:

  SetOutputRange(lowValue, highValue)?

>
>
>>   vtkPNGWriter* writer = vtkPNGWriter::New();
>>   writer->SetInput(iss->GetOutput());
>>   writer->SetFileName(argv[2]);
>>   writer->Write();
>>
>>Always the first scalar is taken, regardles of explicit selection with
>>setActiveScalarrs. The info seems displayed properly (of the first
>>scalar) whih is in my case -9.11732e-06 1.53533e-05, output is black
>>image (empty histogram).
>>I will be grateful if you shed some light on this mystery.
>>Dominik
>>
>>Amy Squillacote wrote:
>> > Try using vtkImageShiftScale instead.  Do something like the following.
>> >
>> > double range[2];
>> > grid->GetCellData()->GetScalars("abc")->GetScalarRange(range);
>> >
>> > vtkImageShiftScale *iss = vtkImageShiftScale::New();
>> > iss->SetInput(grid);
>> > iss->SetOutputScalarTypeToUnsignedChar();
>> > iss->SetShift(-range[0]);
>> > iss->SetScale((range[1] - range[0]) / 256.0);
>> >
>> > Are you sure that the data in your grid (a vtkImageData, I assume) is 
>>in
>> > cell data? It's usually in point data.
>> >
>> > - Amy
>> >
>> > At 09:44 AM 12/20/2005, Dominik Szczerba wrote:
>> >
>> >> Thanks a lot, yes, I am trying the vtkImageCast, compiles fine, but 
>>get
>> >> a black image at the end. Shouldnt I set ranges somewhere?
>> >> I can do
>> >>
>> >> grid->GetCellData()->GetScalars("abc")->GetRange())
>> >>
>> >> but where do I plug the output?
>> >>
>> >> Dominik
>> >>
>> >> Amy Squillacote wrote:
>> >> > Try using either vtkImageCast or vtkImageShiftScale to change your
>> >> image
>> >> > data to contain either unsigned char or unsigned short data.
>> >> >
>> >> > - Amy
>> >> >
>> >> > At 08:58 AM 12/20/2005, Dominik Szczerba wrote:
>> >> >
>> >> >> What is the error? I try to do the same with vtkPNGWriter ending up
>> >> with:
>> >> >>
>> >> >> vtkPNGWriter (0x8058948): PNGWriter only supports unsigned char and
>> >> >> unsigned short inputs
>> >> >>
>> >> >> Meanwhile I try to figure out how to do the appropriate convertion 
>>in
>> >> >> vtk.
>> >> >> --dsz
>> >> >>
>> >> >> Marlos Fabris wrote:
>> >> >> > Hi,
>> >> >> >
>> >> >> > I'm trying to write a jpeg file (using vtkJPEGWriter) from a
>> >> vtkActor
>> >> >> > but I can't accomplish this. I have a vtk file with structured
>> >> points
>> >> >> > data and I wish to transform to vtkPolyData and color it with my
>> >> >> > vtkLookupTable.
>> >> >> >
>> >> >> > Is there a way to convert only my vtkActor to a vtkImageData,
>> >> without
>> >> >> > the frameborders of vtkWindowToImageFilter?
>> >> >> >
>> >> >> > Or is there a way to trim my image?
>> >> >> >
>> >> >> > Thank you in advance,
>> >> >> >
>> >> >> > Marlos Fabris
>> >> >> > _______________________________________________
>> >> >> > This is the private VTK discussion list.
>> >> >> > Please keep messages on-topic. Check the FAQ at:
>> >> >> http://www.vtk.org/Wiki/VTK_FAQ
>> >> >> > Follow this link to subscribe/unsubscribe:
>> >> >> > http://www.vtk.org/mailman/listinfo/vtkusers
>> >> >>
>> >> >> --
>> >> >> Dominik Szczerba, Dr.
>> >> >> ETZ C110 CO-ME/BIWI CH-8092 Zurich
>> >> >> http://www.vision.ee.ethz.ch/~domi
>> >> >> _______________________________________________
>> >> >> This is the private VTK discussion list.
>> >> >> Please keep messages on-topic. Check the FAQ at:
>> >> >> http://www.vtk.org/Wiki/VTK_FAQ
>> >> >> Follow this link to subscribe/unsubscribe:
>> >> >> http://www.vtk.org/mailman/listinfo/vtkusers
>> >>
>> >> --
>> >> Dominik Szczerba, Dr.
>> >> ETZ C110 CO-ME/BIWI CH-8092 Zurich
>> >> http://www.vision.ee.ethz.ch/~domi
>> >> _______________________________________________
>> >> This is the private VTK discussion list.
>> >> Please keep messages on-topic. Check the FAQ at:
>> >> http://www.vtk.org/Wiki/VTK_FAQ
>> >> Follow this link to subscribe/unsubscribe:
>> >> http://www.vtk.org/mailman/listinfo/vtkusers
>>
>>--
>>Dominik Szczerba, Dr.
>>ETZ C110 CO-ME/BIWI CH-8092 Zurich
>>http://www.vision.ee.ethz.ch/~domi
>>_______________________________________________
>>This is the private VTK discussion list.
>>Please keep messages on-topic. Check the FAQ at: 
>>http://www.vtk.org/Wiki/VTK_FAQ
>>Follow this link to subscribe/unsubscribe:
>>http://www.vtk.org/mailman/listinfo/vtkusers
>
>_______________________________________________
>This is the private VTK discussion list. Please keep messages on-topic. 
>Check the FAQ at: http://www.vtk.org/Wiki/VTK_FAQ
>Follow this link to subscribe/unsubscribe:
>http://www.vtk.org/mailman/listinfo/vtkusers

_________________________________________________________________
Don’t just search. Find. Check out the new MSN Search! 
http://search.msn.click-url.com/go/onm00200636ave/direct/01/




More information about the vtkusers mailing list