Page MenuHomePhabricator

tof-cast-align.patch

Authored By
nolden
Mar 2 2018, 3:26 PM
Size
4 KB
Referenced Files
None
Subscribers
None

tof-cast-align.patch

diff --git a/Modules/ToFProcessing/mitkToFCompositeFilter.cpp b/Modules/ToFProcessing/mitkToFCompositeFilter.cpp
index c336ba8c3a..5472959967 100644
--- a/Modules/ToFProcessing/mitkToFCompositeFilter.cpp
+++ b/Modules/ToFProcessing/mitkToFCompositeFilter.cpp
@@ -186,18 +186,20 @@ void mitk::ToFCompositeFilter::ProcessSegmentation(IplImage* inputIplImage)
{
segmentationMask = nullptr;
}
- float *f = (float*)inputIplImage->imageData;
+ float* tmpImage = new float[m_ImageHeight * m_ImageWidth];
+ memcpy(tmpImage, inputIplImage->imageData, m_ImageHeight * m_ImageWidth * sizeof(float));
+
for(int i=0; i<this->m_ImageWidth*this->m_ImageHeight; i++)
{
if (this->m_ApplyThresholdFilter)
{
- if (f[i]<=m_ThresholdFilterMin)
+ if (tmpImage[i]<=m_ThresholdFilterMin)
{
- f[i] = 0.0;
+ tmpImage[i] = 0.0;
}
- else if (f[i]>=m_ThresholdFilterMax)
+ else if (tmpImage[i]>=m_ThresholdFilterMax)
{
- f[i] = 0.0;
+ tmpImage[i] = 0.0;
}
}
if (this->m_ApplyMaskSegmentation)
@@ -206,11 +208,12 @@ void mitk::ToFCompositeFilter::ProcessSegmentation(IplImage* inputIplImage)
{
if (segmentationMask[i]==0)
{
- f[i] = 0.0;
+ tmpImage[i] = 0.0;
}
}
}
}
+ memcpy(inputIplImage->imageData, tmpImage, m_ImageHeight * m_ImageWidth * sizeof(float));
}
ItkImageType2D::Pointer mitk::ToFCompositeFilter::ProcessItkBilateralFilter(ItkImageType2D::Pointer inputItkImage)
@@ -241,7 +244,7 @@ void mitk::ToFCompositeFilter::ProcessCVMedianFilter(IplImage* inputIplImage, Ip
void mitk::ToFCompositeFilter::ProcessStreamedQuickSelectMedianImageFilter(IplImage* inputIplImage)
{
- float* data = (float*)inputIplImage->imageData;
+ const char* data = inputIplImage->imageData;
int imageSize = inputIplImage->width * inputIplImage->height;
float* tmpArray;
@@ -285,7 +288,7 @@ void mitk::ToFCompositeFilter::ProcessStreamedQuickSelectMedianImageFilter(IplIm
for(int j=0; j<imageSize; j++)
{
- this->m_DataBuffer[this->m_DataBufferCurrentIndex][j] = data[j];
+ memcpy(this->m_DataBuffer[this->m_DataBufferCurrentIndex][j], data + j*sizeof(float), sizeof(float));
}
float tmpValue = 0.0f;
@@ -315,7 +318,7 @@ void mitk::ToFCompositeFilter::ProcessStreamedQuickSelectMedianImageFilter(IplIm
delete[] tmpArray;
}
-#define ELEM_SWAP(a,b) { register float t=(a);(a)=(b);(b)=t; }
+#define ELEM_SWAP(a,b) { float t=(a);(a)=(b);(b)=t; }
float mitk::ToFCompositeFilter::quick_select(float arr[], int n)
{
int low = 0;
diff --git a/Modules/ToFProcessing/mitkToFDistanceImageToSurfaceFilter.cpp b/Modules/ToFProcessing/mitkToFDistanceImageToSurfaceFilter.cpp
index 84338beab6..8be26a0f89 100644
--- a/Modules/ToFProcessing/mitkToFDistanceImageToSurfaceFilter.cpp
+++ b/Modules/ToFProcessing/mitkToFDistanceImageToSurfaceFilter.cpp
@@ -122,16 +122,16 @@ void mitk::ToFDistanceImageToSurfaceFilter::GenerateData()
m_VertexIdList->SetId(i, 0);
}
- float* scalarFloatData = nullptr;
+ const char* scalarFloatData = nullptr;
if (this->m_IplScalarImage) // if scalar image is defined use it for texturing
{
- scalarFloatData = (float*)this->m_IplScalarImage->imageData;
+ scalarFloatData = this->m_IplScalarImage->imageData;
}
else if (this->GetInput(m_TextureIndex)) // otherwise use intensity image (input(2))
{
ImageReadAccessor inputAcc(this->GetInput(m_TextureIndex));
- scalarFloatData = (float*)inputAcc.GetData();
+ scalarFloatData = reinterpret_cast<const char*>(inputAcc.GetData());
}
ImageReadAccessor inputAcc(input, input->GetSliceData(0,0,0));
@@ -287,7 +287,9 @@ void mitk::ToFDistanceImageToSurfaceFilter::GenerateData()
//Scalar values are necessary for mapping colors/texture onto the surface
if (scalarFloatData)
{
- scalarArray->InsertTuple1(m_VertexIdList->GetId(pixelID), scalarFloatData[pixelID]);
+ float tuple;
+ memcpy(&tuple,scalarFloatData + pixelID * sizeof(float), sizeof(float));
+ scalarArray->InsertTuple1(m_VertexIdList->GetId(pixelID), tuple);
}
//These Texture Coordinates will map color pixel and vertices 1:1 (e.g. for Kinect).
float xNorm = (((float)i)/xDimension);// correct video texture scale for kinect

File Metadata

Mime Type
text/x-diff
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
321333
Default Alt Text
tof-cast-align.patch (4 KB)

Event Timeline