[Insight-developers] texture features question
Nicholas Tustison
ntustison at gmail.com
Mon May 16 21:59:15 EDT 2011
Thanks. I'll submit a patch.
On May 16, 2011, at 9:56 PM, Luis Ibanez wrote:
> Yeap, it looks like a bug.
>
> The implementation of Histogram will misuse the value
> of max()+1:
>
>
> itkHistogram.txx : lines 237-249:
>
>
> Histogram< TMeasurement, TFrequencyContainer >
> ::Initialize(const SizeType & size, MeasurementVectorType & lowerBound,
> MeasurementVectorType & upperBound)
> {
> this->Initialize(size);
>
> float interval;
> for ( unsigned int i = 0; i < this->GetMeasurementVectorSize(); i++ )
> {
> if ( size[i] > 0 )
> {
> interval = static_cast<float>( upperBound[i] - lowerBound[i] )
> / static_cast< MeasurementType >( size[i] );
>
> ---
>
>
> Luis
>
> ----------------------------
> On Mon, May 16, 2011 at 9:50 PM, Nicholas Tustison <ntustison at gmail.com> wrote:
>> Thanks Luis. If you go to lines 168-169, the lower and upper bounds
>> are used to initialize the joint histogram.
>>
>> size.Fill(m_NumberOfBinsPerAxis);
>> output->Initialize(size, m_LowerBound, m_UpperBound);
>>
>> Was that what you were asking about?
>>
>> The problem is that if everything is the same except the intensity range of one
>> image is scaled between [0,256] and its counterpart is scaled between [0,1],
>> creating a histogram which spans between [0, 257] on each axis is going to be
>> quite different from one that spans between [0,2].
>>
>>
>>
>>
>> On May 16, 2011, at 9:43 PM, Luis Ibanez wrote:
>>
>>> Hi Nick,
>>>
>>> Yeap, that looks like a bug.
>>>
>>> Although, to make sense of it,
>>> we have to dive into how the
>>> bounds are used in the histogram
>>> computation...
>>>
>>>
>>> Luis
>>>
>>>
>>> --------------------------------------------------
>>> On Mon, May 16, 2011 at 9:19 PM, Nicholas Tustison <ntustison at gmail.com> wrote:
>>>> Hi,
>>>>
>>>> I've been working with the cooccurrence matrix texture features classes and noticed that
>>>> if I simply rescale the values, the texture measures are completely different. I tracked it
>>>> down to lines 384 and 385 of itkScalarImageToCooccurrenceMatrixFilter.txx which the
>>>> user uses to set the min and max values of the joint histogram:
>>>>
>>>> m_LowerBound.Fill(min);
>>>> m_UpperBound.Fill(max + 1);
>>>>
>>>> It would seem that line 385 should, instead, be
>>>>
>>>> m_UpperBound.Fill(max);
>>>>
>>>> Does that make sense or am I missing something?
>>>>
>>>> Thanks,
>>>> Nick
>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> Powered by www.kitware.com
>>>>
>>>> Visit other Kitware open-source projects at
>>>> http://www.kitware.com/opensource/opensource.html
>>>>
>>>> Kitware offers ITK Training Courses, for more information visit:
>>>> http://kitware.com/products/protraining.html
>>>>
>>>> Please keep messages on-topic and check the ITK FAQ at:
>>>> http://www.itk.org/Wiki/ITK_FAQ
>>>>
>>>> Follow this link to subscribe/unsubscribe:
>>>> http://www.itk.org/mailman/listinfo/insight-developers
>>>>
>>
>>
More information about the Insight-developers
mailing list