[Insight-users] smoothing an Histogram
Raquel Itk
raquelitk at gmail.com
Wed Jul 8 12:45:40 EDT 2009
Hi Luis,
I convert the Histogram into a 1DImage in this way:
typedef unsigned short PixelType1D;
typedef itk::GDCMImageIO ImageIOType;
typedef itk::Image< PixelType1D, 1 > ImageType1D;
typedef itk::Image< PixelType1D, 1 > ImageType1D_2;
typedef itk::ImageFileReader< ImageType1D > ReaderType1D;
typedef itk::ImageRegionIterator< ImageType1D> IteratorType;
ReaderType::Pointer readerHis = ReaderType::New();
ImageIOType::Pointer gdcmImageIOHis= ImageIOType::New();
HistogramGeneratorType::Pointer histogramGenerator =
HistogramGeneratorType::New();
ReaderType1D::Pointer reader1D = ReaderType1D::New();
ImageType1D::Pointer line = ImageType1D::New();
ImageType1D::SizeType size1D;
ImageType1D::IndexType pixelValue;
ImageType1D::IndexType start1D;
ImageType1D::RegionType region1D;
void createImage(int *valoresHisto){
size1D.Fill( 2286 );
start1D.Fill( 0 );
region1D.SetSize( size1D );
region1D.SetIndex( start1D );
line->SetRegions( region1D );
line->Allocate();
IteratorType lineIt(line, line->GetRequestedRegion());
int i = 0;
for (lineIt.GoToBegin(); !lineIt.IsAtEnd();
++lineIt)
{
lineIt.Set( valoresHisto[i]);
i=i+1;
}
typedef itk::ImageFileWriter< ImageType1D > WriterType1D;
WriterType1D::Pointer writer1D = WriterType1D::New();
writer1D->SetFileName( "Image1D.png" );
writer1D->SetInput( line );
try
{
writer1D->Update();
}
catch (itk::ExceptionObject &e)
{
std::cerr << e << std::endl;
}
}
Now I want to apply SmoothingRecursiveGaussianImageFilter2.cxx, but I have a
problem because if need a 2d Image. How can I resolve it?
Thanks
Raquel
2009/7/4 Luis Ibanez <luis.ibanez at kitware.com>
>
> Hi Raquel,
>
> You can convert the Histogram into a 1D Image,
> and use any of the ITK Smoothing filters on
> this 1D image, then convert the image back
> to a Histogram.
>
> See the class
> Insight/Code/Numerics/Statistics/itkHistogramToImageFilter.h
>
> and its related classes
>
> itkHistogramToEntropyImageFilter.h
> itkHistogramToIntensityImageFilter.h
> itkHistogramToLogProbabilityImageFilter.h
> itkHistogramToProbabilityImageFilter.h
>
> Then look at the section of Smoothing image filters
> in the ITK Software Guide
>
>
> http://www.itk.org/ItkSoftwareGuide.pdf
>
>
>
> Regards,
>
>
> Luis
>
>
>
> --------------------
> Raquel Itk wrote:
>
>> Hi,
>>
>> I have computed the histogram of an image with
>> Examples/Statistics/ImageHistogram2.cxx, now I want to smooth the array ,
>> where I have saved the values of an Histogram ( valoresHisto[i]) because I
>> have a lot of peaks. I would like to use a Gaussian method, I have been read
>> about Gaussian but only for Images.
>>
>> while( itr != end )
>>
>> {
>>
>> valoresHisto[i]=itr.GetFrequency();
>>
>> ++itr;
>>
>> ++binNumber;
>>
>> ++i;
>>
>> }
>>
>> return(valoresHisto);
>>
>>
>> Thanks
>>
>>
>> Raquel
>>
>>
>> ------------------------------------------------------------------------
>>
>> _____________________________________
>> Powered by www.kitware.com
>>
>> Visit other Kitware open-source projects at
>> http://www.kitware.com/opensource/opensource.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-users
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.itk.org/pipermail/insight-users/attachments/20090708/6d2d4354/attachment-0001.htm>
More information about the Insight-users
mailing list