[Insight-users] 'itkDenseFrequencyContainer2.h': No such file or directory

Humayun Irshad humayun.irshad at gmail.com
Mon Mar 19 05:51:31 EDT 2012


When i compile this code (took from this link
http://www.cmake.org/Wiki/ITK/Examples/Statistics/TextureFeatures)
I also include ITKStatistics.lib or add ITKReview (../Code/Review/). I found
this error message.

1>Compiling...
1>TextureFeatures.cxx
1>..\TextureFeatures.cxx(4) : fatal error C1083: Cannot open include file:
'itkDenseFrequencyContainer2.h': No such file or directory
1>Build log was saved at
"file://h:\ITK\WS\GLCM\build\TextureFeatures.dir\Debug\BuildLog.htm"
1>TextureFeatures - 1 error(s), 0 warning(s)
2>------ Skipped Build: Project: ALL_BUILD, Configuration: Debug Win32
------
2>Project not selected to build for this solution configuration 
========== Build: 0 succeeded, 1 failed, 1 up-to-date, 1 skipped ==========

Can i anybody help me regarding this error. 
#include "itkImage.h"
#include "itkImageFileReader.h"
#include "itkImageFileWriter.h"
#include <itkDenseFrequencyContainer2.h>
#include "itkHistogramToTextureFeaturesFilter.h"
#include "itkScalarImageToCooccurrenceMatrixFilter.h"
#include "itkVectorContainer.h"
#include "itkAddImageFilter.h"
#include "itkMultiplyImageFilter.h"
#include "itkRegionOfInterestImageFilter.h"

 
//definitions of used types
typedef itk::Image<float, 3> InternalImageType;
typedef itk::Image<unsigned char, 3> VisualizingImageType;
typedef itk::Neighborhood<float, 3> NeighborhoodType;
typedef
itk::Statistics::ScalarImageToCooccurrenceMatrixFilter<InternalImageType>
    Image2CoOccuranceType;
typedef Image2CoOccuranceType::HistogramType HistogramType;
typedef itk::Statistics::HistogramToTextureFeaturesFilter<HistogramType>
Hist2FeaturesType;
typedef InternalImageType::OffsetType OffsetType;
typedef itk::AddImageFilter <InternalImageType> AddImageFilterType;
typedef itk::MultiplyImageFilter<InternalImageType> MultiplyImageFilterType;
 
//calculate features for one offset
void calcTextureFeatureImage (OffsetType offset,
    InternalImageType::Pointer inputImage, InternalImageType::Pointer
outInertia,
    InternalImageType::Pointer outCorrelation, InternalImageType::Pointer
outEnergy)
{
    //allocate output images
    outInertia->CopyInformation(inputImage);
    outInertia->SetRegions(inputImage->GetLargestPossibleRegion());
    outInertia->Allocate();
    outInertia->FillBuffer(0);
    outCorrelation->CopyInformation(inputImage);
    outCorrelation->SetRegions(inputImage->GetLargestPossibleRegion());
    outCorrelation->Allocate();
    outCorrelation->FillBuffer(0);
    outEnergy->CopyInformation(inputImage);
    outEnergy->SetRegions(inputImage->GetLargestPossibleRegion());
    outEnergy->Allocate();
    outEnergy->FillBuffer(0);
 
    Image2CoOccuranceType::Pointer
glcmGenerator=Image2CoOccuranceType::New();
    glcmGenerator->SetOffset(offset);
    glcmGenerator->SetNumberOfBinsPerAxis(16); //reasonable number of bins
    glcmGenerator->SetPixelValueMinMax(0, 255); //for input UCHAR pixel type
    Hist2FeaturesType::Pointer featureCalc=Hist2FeaturesType::New();
 
    typedef
itk::RegionOfInterestImageFilter<InternalImageType,InternalImageType>
roiType;
    roiType::Pointer roi=roiType::New();
    roi->SetInput(inputImage);
 
    InternalImageType::RegionType window;
    InternalImageType::RegionType::SizeType size;
    size.Fill(3); //window size=3x3x3
    window.SetSize(size);
    InternalImageType::IndexType pi; //pixel index
 
    //slide window over the entire image
    for (unsigned x=1;
x<inputImage->GetLargestPossibleRegion().GetSize(0)-1; x++)
    {
        pi.SetElement(0,x);
        window.SetIndex(0,x-1);
        for (unsigned y=1;
y<inputImage->GetLargestPossibleRegion().GetSize(1)-1; y++)
        {
            pi.SetElement(1,y);
            window.SetIndex(1,y-1);
            for (unsigned z=1;
z<inputImage->GetLargestPossibleRegion().GetSize(2)-1; z++)
            {
                pi.SetElement(2,z);
                window.SetIndex(2,z-1);
                roi->SetRegionOfInterest(window);
                roi->Update();
                glcmGenerator->SetInput(roi->GetOutput());
                glcmGenerator->Update();
                featureCalc->SetInput( glcmGenerator->GetOutput() );
                featureCalc->Update();
 
                outInertia->SetPixel(pi,
featureCalc->GetFeature(Hist2FeaturesType::Inertia));
                outCorrelation->SetPixel(pi,
featureCalc->GetFeature(Hist2FeaturesType::Correlation));
                outEnergy->SetPixel(pi,
featureCalc->GetFeature(Hist2FeaturesType::Energy));
            }
        }
        std::cout<<'.';
    }
}
 
int main(int, char *[])
{
    typedef itk::ImageFileReader<InternalImageType> ReaderType;
    ReaderType::Pointer reader=ReaderType::New();
    reader->SetFileName("t64.mha");
//http://www.cg.informatik.uni-siegen.de/data/Downloads/t64.mha
    reader->Update();
    InternalImageType::Pointer image=reader->GetOutput();
 
    NeighborhoodType neighborhood;
    neighborhood.SetRadius(1);
    unsigned int centerIndex = neighborhood.GetCenterNeighborhoodIndex();
    OffsetType offset;
 
    typedef itk::ImageFileWriter<InternalImageType> WriterType;
    WriterType::Pointer writer=WriterType::New();
    char buf[64];
 
    for ( unsigned int d = 0; d < centerIndex; d++ )
    {
        offset = neighborhood.GetOffset(d);
        InternalImageType::Pointer inertia=InternalImageType::New();
        InternalImageType::Pointer correlation=InternalImageType::New();
        InternalImageType::Pointer energy=InternalImageType::New();
        calcTextureFeatureImage(offset, image, inertia, correlation,
energy);
 
        writer->SetInput(inertia);
		std::stringstream fileNameWithExt;
		fileNameWithExt << "Inertia" << d << ".mha";
		std::string fileName(fileNameWithExt.str());	
		writer->SetFileName(fileName.c_str());
        writer->Update();
        writer->SetInput(correlation);
		std::stringstream fileNameWithExt2;
		fileNameWithExt2 << "Correlation" << d << ".mha";
		std::string fileName2(fileNameWithExt2.str());	
		writer->SetFileName(fileName2.c_str());
	    writer->SetFileName(buf);
        writer->Update();
        writer->SetInput(energy);
		std::stringstream fileNameWithExt3;
		fileNameWithExt3 << "Energy" << d << ".mha";
		std::string fileName3(fileNameWithExt3.str());	
		writer->SetFileName(fileName3.c_str());
        writer->SetFileName(buf);
        writer->Update();
        std::cout<<'\n';
    }
 
    return EXIT_SUCCESS;
}
-- 
View this message in context: http://old.nabble.com/%27itkDenseFrequencyContainer2.h%27%3A-No-such-file-or-directory-tp33530148p33530148.html
Sent from the ITK - Users mailing list archive at Nabble.com.



More information about the Insight-users mailing list