Thanks!
On Tue, Dec 17, 2013 at 4:37 AM, Kislinskiy, Stefan <
[email protected]> wrote:
> Hi!
>
> Some time ago I wrote something similar (and temporary) for manual testing
> purposes and hence it is not very well written but if I remember correctly
> it did the job. The following snippet extracts an a region of an image
> which overlaps with a planar figure and converts it to an QImage.
> Interesting for you might be the last part where you can see that you have
> to mirror the image and swap the RGB channels in case of color images.
>
> mitk::DataNode::Pointer imageDataNode =
> m_Controls.imageComboBox->GetSelectedNode();
> mitk::Image::Pointer image = Get<mitk::Image>(imageDataNode);
>
> mitk::PlanarFigure::Pointer planarFigure =
> Get<mitk::PlanarFigure>(m_CrossSection);
>
> mitk::ExtractSliceFilter::Pointer extractSliceFilter =
> mitk::ExtractSliceFilter::New();
>
> extractSliceFilter->SetInterpolationMode(mitk::ExtractSliceFilter::RESLICE_CUBIC);
> extractSliceFilter->SetResliceTransformByGeometry(image->GetGeometry());
> extractSliceFilter->SetWorldGeometry(planarFigure->GetGeometry2D());
> extractSliceFilter->SetVtkOutputRequest(true);
> extractSliceFilter->SetInput(image);
>
> extractSliceFilter->Update();
>
> vtkImageData* imageData = extractSliceFilter->GetVtkOutput();
>
> mitk::LevelWindow levelWindow;
> imageDataNode->GetLevelWindow(levelWindow);
>
> vtkSmartPointer<vtkLookupTable> lookupTable =
> vtkSmartPointer<vtkLookupTable>::New();
> lookupTable->SetRange(levelWindow.GetLowerWindowBound(),
> levelWindow.GetUpperWindowBound());
> lookupTable->SetSaturationRange(0.0, 0.0);
> lookupTable->SetValueRange(0.0, 1.0);
> lookupTable->SetHueRange(0.0, 0.0);
> lookupTable->SetRampToLinear();
>
> vtkSmartPointer<vtkMitkLevelWindowFilter> levelWindowFilter =
> vtkSmartPointer<vtkMitkLevelWindowFilter>::New();
> levelWindowFilter->SetLookupTable(lookupTable);
> levelWindowFilter->SetInput(imageData);
> levelWindowFilter->SetMinOpacity(0.0);
> levelWindowFilter->SetMaxOpacity(1.0);
>
> int dims[3];
> imageData->GetDimensions(dims);
>
> vtkFloatingPointType clippingBounds[] = { 0.0, dims[0], 0.0, dims[1] };
> levelWindowFilter->SetClippingBounds(clippingBounds);
>
> levelWindowFilter->Update();
>
> imageData = levelWindowFilter->GetOutput();
>
> QImage inspectImage(
> reinterpret_cast<const unsigned char*>(imageData->GetScalarPointer()),
> dims[0],
> dims[1],
> QImage::Format_ARGB32);
>
> inspectImage = inspectImage.rgbSwapped().mirrored(false, true);
>
> m_Controls.inspectLabel->setPixmap(QPixmap::fromImage(inspectImage));
>
> Best,
> Stefan
>
>
> ________________________________________
> Von: Taylor Braun-Jones [[email protected]]
> Gesendet: Dienstag, 17. Dezember 2013 04:10
> An: [email protected]
> Betreff: [mitk-users] mitk::Image to QImage adapter
>
> Hi mitk-users,
>
> I'm looking into creating a QImage thumbnail generator/cacher for all
> DataNodes in a DataStorage. I was hoping I might find something like this
> in MITK Core or Modules, but I don't see anything. Before I re-create
> something that's already been done, has anyone else created something like
> this that they could share? Or even just the mitk::Image to QImage adapter
> part.
>
> Thanks!
>
> Taylor
>
------------------------------------------------------------------------------
Rapidly troubleshoot problems before they affect your business. Most IT
organizations don't have a clear picture of how application performance
affects their revenue. With AppDynamics, you get 100% visibility into your
Java,.NET, & PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro!
http://pubads.g.doubleclick.net/gampad/clk?id=84349831&iu=/4140/ostg.clktrk
_______________________________________________
mitk-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mitk-users