[vtkusers] vtkImageMapToWindowLevelColors help

Anka Kochanowska anka at bic.mni.mcgill.ca
Tue Apr 17 10:35:24 EDT 2007


Ok, here is a part of my real program.
I would send you the whole class, but cannot do it without my boss' 
approval.
Anka

    vtkSmartPointer<vtkImageReslice> m_reslice;
...
        m_reslice->SetInput( m_imageData );
        m_reslice->SetInterpolationModeToLinear( );
        m_reslice->SetOutputExtent(0, 639, 0, 479, 0, 1);
        m_reslice->SetOutputOrigin(0, 0, 0);
        m_reslice->SetOutputDimensionality(2);
        m_reslice->SetOutputSpacing(1,1,1);
        m_reslice->SetResliceTransform( concat );
        m_reslice->UpdateInformation();

        m_displayImage = vtkSmartPointer<vtkImageShiftScale>::New();
        m_displayImage->SetInput(m_reslice->GetOutput());
        m_displayImage->SetScale(scale);
        m_displayImage->SetOutputScalarTypeToUnsignedChar();
       
        m_displayWindowLevelColorsImage = 
vtkSmartPointer<vtkImageMapToWindowLevelColors>::New();
        
m_displayWindowLevelColorsImage->SetInput(m_displayImage->GetOutput());       

        m_displayWindowLevelColorsImage->SetLookupTable(lut);
        m_displayWindowLevelColorsImage->SetWindow(m_win_level[0]*scale);
        m_displayWindowLevelColorsImage->SetLevel(m_win_level[1]*scale);
        m_mriActor->SetInput(m_displayWindowLevelColorsImage->GetOutput());
        m_mriRenderer->AddViewProp( m_mriActor );
        
m_mriOutlineFilter->SetInput(m_displayWindowLevelColorsImage->GetOutput());
        m_mriOutlineMapper->SetInput( m_usOutlineFilter->GetOutput() );
        m_mriRenderer->AddViewProp( m_mriOutlineActor );


Luca Pamparana wrote:

> Hey Anka,
>
> Thanks again for the reply.
>
> The thing is that I am using the reslicer to extract a 2D slice and 
> just display that. All the interpolation, orientation, which slice to 
> extract etc. is controlled by the reslicer.
>
> The vtkImageActor seems to have its own corresponding methods for 
> these operations. I am wondering if these can coexist... Only one way 
> to find out, I guess! Time for try some quick hack...
>
> Thanks,
> Luca.
>
> On 4/17/07, *Anka Kochanowska* < anka at bic.mni.mcgill.ca 
> <mailto:anka at bic.mni.mcgill.ca>> wrote:
>
>     I am using vtkImageActor:
>
>
>             vtkImageActor * mriActor;
>     ...
>     ...
>             blendedImage->AddInput( 0, img1->GetOutput());
>             blendedImage->AddInput( 0,
>     .displayWindowLevelColorsImage->GetOutput());
>             blendedImage->Update();
>             mriActor->SetInput(blendedImage->GetOutput());
>             renderer->AddViewProp( mriActor );
>     Anka
>
>     Luca Pamparana wrote:
>
>     > Hello everyone,
>     >
>     > I am unable to get the vtkImageMapToWindowLevelColors to give me an
>     > output :(
>     >
>     > My pipeline is as follows:
>     >
>     > // vtkImageData input to a reslicer
>     > this->m_slicer->SetInput(in);
>     >
>     > // pass the output of the slicer to
>     vtkImageMapToWindowLevelColors object
>     >
>     this->m_windowLevelMapper->SetInputConnection(this->m_slicer->GetOutputPort());
>     >
>     >
>     > // Pipe the output to a vtkImageBlend object
>     > this->m_blender->AddInputConnection(0,
>     > this->m_windowLevelMapper->GetOutputPort());
>     >
>     > // Pipe output to a vtkImageMapper. This mapper is tied to the
>     Actor2D
>     > // object that is added to the renderer
>     > this->m_imageMapper->SetInput(this->m_blender->GetOutput());
>     >
>     > double * range = in->GetScalarRange();
>     > if (range)
>     > {
>     >       // this calls the ciorresponding methods on the
>     > vtkImageMapToWindowLevelColors object
>     >        this->SetColorWindow(range[1] - range[0]);
>     >        this->SetColorLevel(0.5 * (range[1] + range[0]));
>     >  }
>     >
>     > SetSlice(static_cast<int>((GetWholeZMin() + GetWholeZMax()) * 0.5));
>     >
>     > My guess is that I am not setting the ColorWindow and ColorLevel on
>     > the vtkImageMapper instance. However, I want to control the color
>     > window and color level values independently of the mapper as the
>     > vtkImageBlend will also have other inputs that I want to control
>     the
>     > window and level values for.
>     >
>     > Any help on how I can get this to work is much appreciated.
>     >
>     > Thanks,
>     > Luca
>     >
>     >------------------------------------------------------------------------
>
>     >
>     >_______________________________________________
>     >This is the private VTK discussion list.
>     >Please keep messages on-topic. Check the FAQ at:
>     http://www.vtk.org/Wiki/VTK_FAQ <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
>  
>



More information about the vtkusers mailing list