36 const unsigned int dimension =
m_Input->GetDimension();
37 unsigned int* dimensions =
m_Input->GetDimensions();
39 m_Output->SetDimensions( dimensions );
40 m_Output->SetDimension( (
unsigned short)dimension );
44 m_Output->GetMITKImage()->SetSpacing( p_slg->GetSpacing() );
45 m_Output->GetMITKImage()->SetGeometry(
m_Input->GetMITKImage()->GetGeometry() );
57 const unsigned int dimension =
m_Input->GetDimension();
58 unsigned int* dimensions =
m_Input->GetDimensions();
65 m_Output->GetMITKImage()->SetSpacing( p_slg->GetSpacing());
66 m_Output->GetMITKImage()->SetGeometry(
m_Input->GetMITKImage()->GetGeometry() );
78 const cl_image_format* currentImFormat = this->
m_Input->GetPixelType();
81 switch( currentImFormat->image_channel_data_type )
84 return mitk::MakeScalarPixelType<unsigned char>();
85 case CL_UNSIGNED_INT8:
86 return mitk::MakeScalarPixelType<unsigned char>();
88 return mitk::MakeScalarPixelType<short>();
90 return mitk::MakeScalarPixelType<short>();
107 const unsigned int uiImageWidth =
m_Input->GetDimension(0);
108 const unsigned int uiImageHeight =
m_Input->GetDimension(1);
109 const unsigned int uiImageDepth =
m_Input->GetDimension(2);
112 this->
SetWorkingSize( 8, uiImageWidth, 8, uiImageHeight , 8, uiImageDepth );
115 cl_mem clBuffOut =
m_Output->GetGPUBuffer();
121 mitkThrow()<<
"Could not create / initialize gpu image.";
131 MITK_DEBUG <<
"Create GPU Image call " << uiImageWidth<<
"x"<<uiImageHeight<<
"x"<<uiImageDepth;
132 clBuffOut =
m_Output->CreateGPUImage(uiImageWidth, uiImageHeight, uiImageDepth, this->
m_CurrentType + 1);
136 clErr = clSetKernelArg(ckKernel, 0,
sizeof(cl_mem), &clBuffIn);
137 clErr |= clSetKernelArg(ckKernel, 1,
sizeof(cl_mem), &clBuffOut);
140 if( clErr != CL_SUCCESS )
143 return( clErr == CL_SUCCESS );
154 const unsigned int uiImageWidth = dimensions[0];
155 const unsigned int uiImageHeight = dimensions[1];
156 const unsigned int uiImageDepth = dimensions[2]+1;
159 this->
SetWorkingSize( 8, uiImageWidth, 8, uiImageHeight , 8, uiImageDepth );
162 cl_mem clBuffOut =
m_Output->GetGPUBuffer();
168 mitkThrow()<<
"Could not create / initialize gpu image.";
176 MITK_INFO <<
"Create GPU Image call " << uiImageWidth<<
"x"<<uiImageHeight<<
"x"<<uiImageDepth;
177 clBuffOut =
m_Output->CreateGPUImage(uiImageWidth, uiImageHeight, uiImageDepth, this->
m_CurrentType + 1);
181 clErr = clSetKernelArg(ckKernel, 0,
sizeof(cl_mem), &clBuffIn);
182 clErr |= clSetKernelArg(ckKernel, 1,
sizeof(cl_mem), &clBuffOut);
185 if( clErr != CL_SUCCESS )
188 return( clErr == CL_SUCCESS );
#define CHECK_OCL_ERR(_er)
std::string GetOclErrorAsString(int _clErr)
Returns the name of an OpenCL Error as a string.
virtual ~OclImageToImageFilter()
Destructor.
virtual mitk::PixelType GetOutputType()
(Virtual) method returning the format in which the output image will be returned
mitk::OclImage::Pointer m_Input
virtual int GetBytesPerElem()
Get the memory size needed for each element.
OclImageToImageFilter()
OclImageToImageFilter Default constructor.
cl_command_queue m_CommandQue
Command queue for the filter.
mitk::OclImage::Pointer m_Output
mitk::OclImage::Pointer GetGPUOutput()
Returns a pointer to the graphics memory.
mitk::Image::Pointer GetOutput()
Returns an mitk::Image::Pointer containing the filtered data.
void SetWorkingSize(unsigned int locx, unsigned int dimx, unsigned int locy=1, unsigned int dimy=1, unsigned int locz=1, unsigned int dimz=1)
Set the working size for the following OpenCL kernel call.
bool InitExec(cl_kernel ckKernel)
InitExec Initialize the execution.
Class for defining the data type of pixels.