[vtkusers] Writing a JPEG from vtkActor

Dominik Szczerba domi at vision.ee.ethz.ch
Tue Dec 20 10:35:52 EST 2005


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);

  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



More information about the vtkusers mailing list