[Insight-developers] Re: [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-developers
mailing list