MITK-IGT
IGT Extension of MITK
Loading...
Searching...
No Matches
mitkImageToOpenCVImageFilter.cpp
Go to the documentation of this file.
1/*============================================================================
2
3The Medical Imaging Interaction Toolkit (MITK)
4
5Copyright (c) German Cancer Research Center (DKFZ)
6All rights reserved.
7
8Use of this source code is governed by a 3-clause BSD license that can be
9found in the LICENSE file.
10
11============================================================================*/
12
14
15#include <itkImportImageFilter.h>
16#include <itkRGBPixel.h>
17#include <mitkImageAccessByItk.h>
18
19namespace mitk{
20
22 {
23 m_sliceSelector = ImageSliceSelector::New();
24 }
25
29
30
32 {
33 m_Image = _Image;
34 }
35
37 {
38 return m_Image.Lock();
39 }
40
41
43 {
44 if(image == nullptr)
45 {
46 MITK_WARN << "MITK Image is 0";
47 return false;
48 }
49 if(image->GetDimension() > 2 )
50 {
51 MITK_WARN << "Only 2D Images allowed";
52 return false;
53 }
54 return true;
55 }
56
58 {
59 auto image = m_Image.Lock();
60
61 if(!this->CheckImage(image))
62 return cv::Mat();
63
64 try
65 {
66 AccessFixedTypeByItk(image.GetPointer(), ItkImageProcessing,
67 MITK_ACCESSBYITK_PIXEL_TYPES_SEQ // gray image
69 (2) // dimensions
70 )
71 }
72 catch (const AccessByItkException& e) {
73 std::cout << "Caught exception [from AccessFixedTypeByItk]: \n" << e.what() << "\n";
74 return cv::Mat();
75 }
76 return m_OpenCVImage;
77 }
78
79 template<typename TPixel, unsigned int VImageDimension>
80 void ImageToOpenCVImageFilter::ItkImageProcessing( itk::Image<TPixel,VImageDimension>* image )
81 {
82 m_OpenCVImage = itk::OpenCVImageBridge::ITKImageToCVMat(image);
83 }
84
85 void ImageToOpenCVImageFilter::SetInputFromTimeSlice(Image::Pointer mitkImage, int timeStep, int slice)
86 {
87 m_sliceSelector->SetInput(mitkImage);
88 m_sliceSelector->SetSliceNr(slice);
89 m_sliceSelector->SetTimeNr(timeStep);
90 m_sliceSelector->Update();
91 this->SetImage(m_sliceSelector->GetOutput());
92 }
93
94} // end namespace mitk
void SetImage(mitk::Image *_Image)
set the input MITK image
mitk::WeakPointer< mitk::Image > m_Image
void SetInputFromTimeSlice(Image::Pointer mitkImage, int timeStep, int slice)
Convenient method to set a certain slice of a 3D or 4D mitk::Image as input to convert it to an openC...
bool CheckImage(mitk::Image *image)
get the input MITK image
itk::RGBPixel< unsigned char > UCRGBPixelType
itk::RGBPixel< unsigned short > USRGBPixelType
void ItkImageProcessing(itk::Image< TPixel, VImageDimension > *image)
mitk::Image * GetImage()
get the input MITK image
IGT Exceptions.