[Insight-users] Public declaration of vtk and itk objects in MFC-applications
Luis Ibanez
luis.ibanez at kitware.com
Sun Apr 6 13:16:15 EDT 2008
It probably should just be:
FixedImageType::ConstPointer ImageFix;
(without the "typedef"),
Since "ImageFix" is used later in the application
as a variable, not as a type. Like in:
ImageFix = reader->GetOutput();
Regards,
Luis
-------------------------------------------------------------
On 4/6/08, Karthik Krishnan <karthik.krishnan at kitware.com> wrote:
> The following declaration
>
> typedef const FixedImageType::Pointer *ImageFix;
>
> should instead be
>
> typedef FixedImageType::ConstPointer ImageFix;
>
> On Sun, Apr 6, 2008 at 10:17 AM, Boettcher, Dr. Peter
> <Boettcher at kleintierklinik.uni-leipzig.de> wrote:
> >
> >
> >
> > Until now I used vtk for image analysis building MFC-applications. Now I
> > would like to extend my code to both vtk and itk.
> >
> >
> >
> > I looked at the example from Yong Su at
> > http://insight-journal.org/midas/handle.php?handle=1926/479 but I still
> have
> > the problem of declaring my variables
> >
> >
> >
> > For vtk-objects I use this kind of code for public declaration
> >
> >
> >
> > class CVtkKennethDlg : public CDialog
> >
> > {
> >
> > // Konstruktion
> >
> > public:
> >
> > CVtkKennethDlg(CWnd* pParent = NULL); // Standard-Konstruktor
> >
> > vtkImageData * m_Image;
> >
> > ….}
> >
> >
> >
> > in the main application I used
> >
> >
> >
> > m_Image = vtkImageData::New();
> >
> >
> >
> >
> >
> >
> >
> > Using this approach I declared m_Image for the rest of my code.
> >
> >
> >
> > However I do not now how to implement that approach for itk-objects.
> >
> >
> >
> > I tried the following which does not work:
> >
> >
> >
> >
> >
> > class CDewarpDlg : public CDialog
> >
> > {
> >
> > // Konstruktion
> >
> > public:
> >
> > CDewarpDlg(CWnd* pParent = NULL); //
> Standard-Konstruktor
> >
> >
> >
> > typedef float PixelType;
> >
> > typedef itk::Image< PixelType, 2 > FixedImageType;
> >
> > typedef const FixedImageType::Pointer *ImageFix;
> >
> > …
> >
> > }
> >
> >
> >
> >
> >
> >
> >
> > in the main application :
> >
> >
> >
> > void CDewarpDlg::OnBUTTONImgGrid()
> >
> > {
> >
> > // Loads the deformed Grid-image
> >
> > typedef itk::ImageFileReader< FixedImageType > ReaderType;
> >
> > ReaderType::Pointer reader = ReaderType::New();
> >
> >
> >
> >
> >
> > CString FileName;
> >
> > CFileDialog* m_fileDialog = new CFileDialog( TRUE, NULL, NULL,
> > OFN_EXPLORER, "BMP Files (*.bmp)|*.bmp|All Files (*.*)|*.*||", this );
> >
> >
> >
> > if(m_fileDialog->DoModal() == IDCANCEL) return;
> >
> > else FileName = m_fileDialog->GetPathName();
> >
> > delete m_fileDialog;
> >
> >
> >
> >
> >
> > reader->SetFileName( (LPCTSTR)FileName );
> >
> > reader->Update();
> >
> >
> >
> > ImageFix = FixedImageType::New();
> >
> >
> >
> > ImageFix = reader->GetOutput();
> >
> >
> >
> > }
> >
> >
> >
> > I got the following errors:
> >
> > error C2513: 'const class itk::SmartPointer<class itk::Image<float,2> > *'
> :
> > Keine Variable vor '=' deklariert
> >
> > error C2513: 'const class itk::SmartPointer<class itk::Image<float,2> > *'
> :
> > Keine Variable vor '=' deklariert
> >
> >
> >
> > That means: no variable declared before '='
> >
> >
> >
> > I think the problem is due to my very limited programming skills.
> >
> >
> >
> > Regards, Peter.
> >
> >
> >
> > PS: I would like to stick to MFC-based applications because I am familiar
> > with that "platform". Switching to tcl or fltk would mean to start from
> the
> > beginning.
> >
> >
> > _______________________________________________
> > Insight-users mailing list
> > Insight-users at itk.org
> > http://www.itk.org/mailman/listinfo/insight-users
> >
> >
> _______________________________________________
> Insight-users mailing list
> Insight-users at itk.org
> http://www.itk.org/mailman/listinfo/insight-users
>
More information about the Insight-users
mailing list