[Insight-users] Histogram bug with maximum possible value ?

Karthik Krishnan Karthik.Krishnan at kitware.com
Wed Jun 7 17:53:37 EDT 2006


The histogram class is a widely used class. Please file a bug report and 
assign it to me with a high priority.

-----

That said, I am surprised, it does not handle pixels with intensity 255. 
See lines 90-102 of 
http://www.itk.org/cgi-bin/viewcvs.cgi/Code/Numerics/Statistics/itkListSampleToHistogramGenerator.txx?annotate=1.14&root=Insight

        h_upper[i] = ((THistogramMeasurement) upper[i]) +
          NumericTraits< THistogramMeasurement >::One ;
        if(h_upper[i] <= upper[i])
          {
          // an overflow has occurred therefore set upper to upper
          h_upper[i] = upper[i];
          // Histogram measurement type would force the clipping the max 
value.
          // Therefore we must call the following to include the max value:
          m_Histogram->SetClipBinsAtEnds(false);
          }

If pixel type is UCHAR, it should go into that if block and do the 
SetClipBinsAtEnds(false) thing. That would mean that the bins at the 
edges of the histogram extend to infinity, so really 255 should be 
considered.   [ In the default case, the ends are clipped, See 
constructor of itk::Histogram with sets ClipBinsAtEnds to true (so 255 
won't be considered), but that's not the case with you since you are 
using the ScalarImageToHistogramGenerator.  ]


Thanks for reporting this.
-karthik


Gaetan Lehmann wrote:

>
> Hi,
>
> I am the only one to have this problem ?
> Should I file a bug report ?
>
> Gaetan
>
>
> On Fri, 02 Jun 2006 17:11:45 +0200, Gaetan Lehmann  
> <gaetan.lehmann at jouy.inra.fr> wrote:
>
>>
>> I forgot to say I'm using ITK 2.6.0 with gcc 4.0
>>
>> On Fri, 02 Jun 2006 16:23:25 +0200, Gaetan Lehmann  
>> <gaetan.lehmann at jouy.inra.fr> wrote:
>>
>>>
>>> Hi,
>>>
>>> I'm trying to manipulate histograms, with itk::Histogram. I'm 
>>> generating
>>> the histogram from an image with the ScalarImageToHistogramGenerator
>>> class. The pixel type of the input image is unsigned char.
>>> Everything seems to work, as long as there is no pixel value = 255 
>>> in  the
>>> image.
>>> All the pixels with an intensity of 255 are not counted in the  
>>> histogram.
>>> For example, the attached image (a 10x10 black image with 4 white (255)
>>> pixels) produce an histogram with 96 pixels according to the
>>> GetTotalFrequency() result.
>>>
>>> Is it a bug ?
>>> Or I have missed something ?
>>>
>>> Regards,
>>>
>>> Gaetan
>>>
>>
>>
>>
>
>
>


More information about the Insight-users mailing list