Page MenuHomePhabricator

Immediate MITK Crash on the attempt to render a vector field image
Closed, DuplicatePublic

Description

MITK Workbench, log output:

[2.450] ioRegion: ImageIORegion (0x7fffffff8e30)

Dimension: 3
Index: 0 0 0 
Size: 101 129 61

[2.820] number of image components: 3

The image is correctly loaded and for short time it appears in the datamanager, but the application crashed during the attempt to render the image. The last mitk-class call is in the

void mitk::VtkMapper::MitkRenderOpaqueGeometry(BaseRenderer* renderer)

l.65 : GetVtkProp(renderer)->RenderOpaqueGeometry( renderer->GetVtkRenderer() );

The last (debuggable) code before the segfault is the

l.316 glVertex3fv(static_cast<const GLfloat *>(attribute) + offset);

in vtkOpenGLPainterDeviceAdapter.cxx

Event Timeline

This bug could not be fixed within the 2013-06 release and has medium severity. Setting target milestone to unspecified.

This bug could not be fixed within the release 2013-06. Setting its target milestone to unspecified

This bug is now part of the Bugsquashing SCRUM program.

The image mapper doesn't support vector images yet. It silently maps vector images to color images and trims all components down to a maximum of 4 (red, green, blue, transparency). However, this works on Windows but not on Linux and it seems to be VTK-related.

Solution: Images with more than 4 components should always be treated as vector images. Images with less or equal than 4 components should have the option to be seen by MITK as vector images. In the case of an vector image the user should be able to select the rendered component. This could be achieved by introducing two properties like "isVectorImage" and "activeComponent".

There is already a feature request for the ability to render vector images (T14807). We chose this bug for future implementation.