Skip to content

Commit b6e70f8

Browse files
authored
Merge pull request #29 from jbvimort/memory-access
Memory access
2 parents 2b4544f + 4c6220c commit b6e70f8

File tree

3 files changed

+28
-32
lines changed

3 files changed

+28
-32
lines changed

include/itkCoocurrenceTextureFeaturesImageFilter.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -239,7 +239,6 @@ class ITK_TEMPLATE_EXPORT CoocurrenceTextureFeaturesImageFilter:public ImageToIm
239239
PixelType m_Min;
240240
PixelType m_Max;
241241
PixelType m_InsidePixelValue;
242-
typename TInputImage::SpacingType m_Spacing;
243242
bool m_Normalize;
244243

245244

include/itkCoocurrenceTextureFeaturesImageFilter.hxx

Lines changed: 12 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ CoocurrenceTextureFeaturesImageFilter< TInputImage, TOutputImage >
5656
// connected to the iterated pixel. Do not include the currentInNeighborhood pixel.
5757
unsigned int centerIndex = hood.GetCenterNeighborhoodIndex();
5858
OffsetVectorPointer offsets = OffsetVector::New();
59-
for( unsigned int d = 0; d < centerIndex; d++ )
59+
for( unsigned int d = 0; d < centerIndex; ++d )
6060
{
6161
OffsetType offset = hood.GetOffset( d );
6262
offsets->push_back( offset );
@@ -146,7 +146,7 @@ CoocurrenceTextureFeaturesImageFilter<TInputImage, TOutputImage>
146146
// Declaration of the variables useful to iterate over the all image region
147147
bool isInImage;
148148
IndexType firstIndex;
149-
for ( unsigned int i = 0; i < this->m_NeighborhoodRadius.Dimension; i++ )
149+
for ( unsigned int i = 0; i < this->m_NeighborhoodRadius.Dimension; ++i )
150150
{
151151
firstIndex[i] = 0;
152152
}
@@ -228,8 +228,8 @@ CoocurrenceTextureFeaturesImageFilter<TInputImage, TOutputImage>
228228
}
229229

230230
// Increase the corresponding bin in the histogram
231-
totalNumberOfFreq++;
232-
hist[currentInNeighborhoodPixelIntensity][pixelIntensity]++;
231+
++totalNumberOfFreq;
232+
++hist[currentInNeighborhoodPixelIntensity][pixelIntensity];
233233
}
234234
}
235235
// Compute the run length features
@@ -337,9 +337,9 @@ CoocurrenceTextureFeaturesImageFilter<TInputImage, TOutputImage>
337337
}
338338
const double log2 = std::log(2.0);
339339

340-
for(unsigned int a = 0; a < m_NumberOfBinsPerAxis; a++)
340+
for(unsigned int a = 0; a < m_NumberOfBinsPerAxis; ++a)
341341
{
342-
for(unsigned int b = 0; b < m_NumberOfBinsPerAxis; b++)
342+
for(unsigned int b = 0; b < m_NumberOfBinsPerAxis; ++b)
343343
{
344344
float frequency = hist[a][b] / (float)totalNumberOfFreq;
345345
if ( Math::AlmostEquals( frequency, NumericTraits< float >::ZeroValue() ) )
@@ -458,26 +458,23 @@ CoocurrenceTextureFeaturesImageFilter<TInputImage, TOutputImage>
458458

459459
itkPrintSelfObjectMacro( DigitalizedInputImage );
460460

461-
os << indent << "NeighborhoodRadius"
461+
os << indent << "NeighborhoodRadius: "
462462
<< static_cast< typename NumericTraits<
463463
NeighborhoodRadiusType >::PrintType >( m_NeighborhoodRadius ) << std::endl;
464464

465465
itkPrintSelfObjectMacro( Offsets );
466466

467-
os << indent << "NumberOfBinsPerAxis" << m_NumberOfBinsPerAxis << std::endl;
468-
os << indent << "Min"
467+
os << indent << "NumberOfBinsPerAxis: " << m_NumberOfBinsPerAxis << std::endl;
468+
os << indent << "Min: "
469469
<< static_cast< typename NumericTraits< PixelType >::PrintType >( m_Min )
470470
<< std::endl;
471-
os << indent << "Max"
471+
os << indent << "Max: "
472472
<< static_cast< typename NumericTraits< PixelType >::PrintType >( m_Max )
473473
<< std::endl;
474-
os << indent << "InsidePixelValue"
474+
os << indent << "InsidePixelValue: "
475475
<< static_cast< typename NumericTraits< PixelType >::PrintType >(
476476
m_InsidePixelValue ) << std::endl;
477-
os << indent << "Spacing"
478-
<< static_cast< typename NumericTraits<
479-
typename TInputImage::SpacingType >::PrintType >( m_Spacing ) << std::endl;
480-
os << indent << "Normalize" << m_Normalize << std::endl;
477+
os << indent << "Normalize: " << m_Normalize << std::endl;
481478
}
482479
} // end of namespace Statistics
483480
} // end of namespace itk

include/itkRunLengthTextureFeaturesImageFilter.hxx

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ RunLengthTextureFeaturesImageFilter< TInputImage, TOutputImage >
5252
// connected to the iterated pixel. Do not include the currentInNeighborhood pixel.
5353
unsigned int centerIndex = hood.GetCenterNeighborhoodIndex();
5454
OffsetVectorPointer offsets = OffsetVector::New();
55-
for( unsigned int d = 0; d < centerIndex; d++ )
55+
for( unsigned int d = 0; d < centerIndex; ++d )
5656
{
5757
OffsetType offset = hood.GetOffset( d );
5858
offsets->push_back( offset );
@@ -145,7 +145,7 @@ RunLengthTextureFeaturesImageFilter<TInputImage, TOutputImage>
145145
IndexType boolCurentInNeighborhoodIndex;
146146
typedef Image<bool, TInputImage::ImageDimension> BoolImageType;
147147
typename BoolImageType::Pointer alreadyVisitedImage = BoolImageType::New();
148-
for ( unsigned int i = 0; i < this->m_NeighborhoodRadius.Dimension; i++ )
148+
for ( unsigned int i = 0; i < this->m_NeighborhoodRadius.Dimension; ++i )
149149
{
150150
boolSize[i] = this->m_NeighborhoodRadius[i]*2 + 1;
151151
boolStart[i] = 0;
@@ -206,9 +206,9 @@ RunLengthTextureFeaturesImageFilter<TInputImage, TOutputImage>
206206
continue;
207207
}
208208
// Initialisation of the histogram
209-
for(unsigned int a = 0; a < m_NumberOfBinsPerAxis; a++)
209+
for(unsigned int a = 0; a < m_NumberOfBinsPerAxis; ++a)
210210
{
211-
for(unsigned int b = 0; b < m_NumberOfBinsPerAxis; b++)
211+
for(unsigned int b = 0; b < m_NumberOfBinsPerAxis; ++b)
212212
{
213213
histogram[a][b] = 0;
214214
}
@@ -256,7 +256,7 @@ RunLengthTextureFeaturesImageFilter<TInputImage, TOutputImage>
256256
if ( pixelIntensity == currentInNeighborhoodPixelIntensity )
257257
{
258258
alreadyVisitedImage->SetPixel( boolCurentInNeighborhoodIndex + iteratedOffset, true );
259-
pixelDistance++;
259+
++pixelDistance;
260260
iteratedOffset += offset;
261261
insideNeighborhood = this->IsInsideNeighborhood(iteratedOffset);
262262
}
@@ -266,9 +266,11 @@ RunLengthTextureFeaturesImageFilter<TInputImage, TOutputImage>
266266
}
267267
}
268268
// Increase the corresponding bin in the histogram
269+
269270
this->IncreaseHistogram(histogram, totalNumberOfRuns,
270-
currentInNeighborhoodPixelIntensity,
271-
offset, pixelDistance);
271+
currentInNeighborhoodPixelIntensity,
272+
offset, pixelDistance);
273+
272274
}
273275
}
274276
// Compute the run length features
@@ -283,9 +285,9 @@ RunLengthTextureFeaturesImageFilter<TInputImage, TOutputImage>
283285

284286
for(unsigned int axis = 0; axis < m_NumberOfBinsPerAxis; ++axis)
285287
{
286-
delete histogram[axis];
288+
delete[] histogram[axis];
287289
}
288-
delete histogram;
290+
delete[] histogram;
289291
}
290292

291293
template<typename TInputImage, typename TOutputImage>
@@ -405,14 +407,12 @@ RunLengthTextureFeaturesImageFilter<TInputImage, TOutputImage>
405407
offsetDistance += (offset[i]*m_Spacing[i])*(offset[i]*m_Spacing[i]);
406408
}
407409
offsetDistance = std::sqrt(offsetDistance);
408-
409410
int offsetDistanceBin = static_cast< int>(( offsetDistance*pixelDistance - m_MinDistance)/
410411
( (m_MaxDistance - m_MinDistance) / (float)m_NumberOfBinsPerAxis ));
411-
412-
if (offsetDistanceBin < static_cast< int >( m_NumberOfBinsPerAxis ))
412+
if (offsetDistanceBin < static_cast< int >( m_NumberOfBinsPerAxis ) && offsetDistanceBin >= 0)
413413
{
414-
totalNumberOfRuns++;
415-
histogram[currentInNeighborhoodPixelIntensity][offsetDistanceBin]++;
414+
++totalNumberOfRuns;
415+
++histogram[currentInNeighborhoodPixelIntensity][offsetDistanceBin];
416416
}
417417
}
418418

@@ -438,9 +438,9 @@ RunLengthTextureFeaturesImageFilter<TInputImage, TOutputImage>
438438
vnl_vector<double> runLengthNonuniformityVector(
439439
m_NumberOfBinsPerAxis, 0.0 );
440440

441-
for(unsigned int a = 0; a < m_NumberOfBinsPerAxis; a++)
441+
for(unsigned int a = 0; a < m_NumberOfBinsPerAxis; ++a)
442442
{
443-
for(unsigned int b = 0; b < m_NumberOfBinsPerAxis; b++)
443+
for(unsigned int b = 0; b < m_NumberOfBinsPerAxis; ++b)
444444
{
445445
OutputRealType frequency = histogram[a][b];
446446
if ( Math::ExactlyEquals(frequency, NumericTraits<OutputRealType>::ZeroValue()) )

0 commit comments

Comments
 (0)