Bonjour,

Je travaille depuis peu sur des images m�dicales et je d�couvre les librairies itk, vtk, mitk.
J'arrive � appliquer des algorithmes simples sur des itk::image comme le seuil au niveau des pixels.

Mais pour les images que je veux analyser, j'ai besoin d'une interface graphique comme MITK. J'ai donc compil� la version 0.12.2 et j'ajoute du code � l'aide notamment de QT.
Mais mon probl�me est que mes algorithmes ne s'appliquent qu'� des itk::images et le render que j'ai via MITK sont des mitk::images incompatibles avec les fonctions des itk::images.

J'ai cherch� des fonctions de cast comme "CastToItkImage (mitkimage,itkimage)" mais � la compilation on me dit:
"error: no matching function for call to �CastToItkImage(mitk::Image*&, Image2DType*&)�
"

Quelle librairie faut il utiliser pour acc�der � cette fonction? Ou n'existe-t-il pas un autre moyen de convertir des mitk::images en itk::images?

voici mon code pour un seuil de 200:
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
void QmitkMainTemplate::fileThreshold(){
 
    int umbral = 200;
    mitk::LevelWindowManager::Pointer lwman = mitk::LevelWindowManager::New();
    QmitkLevelWindowWidget * lwinw;
    mitk::Image * mimage =  mitk::Image::New();
    Image2DType * image = Image2DType::New();//
    QmitkStdMultiWidget * mainwin = this->GetMultiWidget();
    QmitkRenderWindow * win;
    vtkRenderWindow * renwin = vtkRenderWindow::New();   
    vtkRenderer *ren1 = vtkRenderer::New(); 
    ConnectorType::Pointer connector = ConnectorType::New();
    vtkImageViewer2 * viewer = vtkImageViewer2::New();
    vtkImageActor * imageActor = viewer->GetImageActor ();
    vtkRenderWindowInteractor * renderWindowInteractor =
    vtkRenderWindowInteractor::New();
 
    win=mainwin->mitkWidget1;
    renwin= win->GetRenderWindow();
    lwinw= mainwin->levelWindowWidget;
    lwman=lwinw->GetManager();
    mimage=lwman->GetCurrentImage();
 
    CastToItkImage (mimage,image);//??????????? 
 
    IteratorType  it( image, image->GetRequestedRegion () );//
 
    it.GoToBegin();
    while( !it.IsAtEnd() )
    {	
     	if(image->GetPixel(it.GetIndex ())<umbral){
		image->SetPixel(it.GetIndex(), 0); 
	}
	else{
		image->SetPixel(it.GetIndex(), 255);
	}
	++it;
    }
    connector->SetInput( image);
 
 
    viewer->SetInput( connector->GetOutput() );
    imageActor = viewer->GetImageActor ();
    imageActor->SetOrigin( imageActor->GetCenter() );
    imageActor->RotateX( 180 ) ;
    ren1->AddActor(imageActor); 
    renwin->AddRenderer(ren1); 
 
    renwin->Render();
    QApplication::setOverrideCursor( QCursor(Qt::WaitCursor) );
    QApplication::restoreOverrideCursor();
}
Image2DType est un typedef venant de "myLibrary.h" qui se pr�sente comme suit:
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#ifndef __myLibrary_h
#define __myLibrary_h
 
using namespace std;
#include <iostream>
#include <itkImage.h>
#include <itkImageRegionIterator.h>
#include <itkImageFileWriter.h>
#include <itkImageFileReader.h>
//#include "itkImageIOBase.h"
#include <itkRGBPixel.h>
#include <itkImageToVTKImageFilter.h>
#include <vtkImageViewer2.h>
#include <vtkImageActor.h>
#include <vtkRenderWindowInteractor.h>
 
#include "vtkAlgorithmOutput.h"
 
typedef unsigned char					PixelType;
typedef itk::Image< PixelType, Dimension >		Image2DType;  
typedef itk::ImageRegionIterator< Image2DType>		IteratorType;
typedef itk::ImageFileWriter< Image2DType >		WriterType;
typedef itk::ImageFileReader<Image2DType>		ReaderType;
typedef itk::ImageToVTKImageFilter< Image2DType>	ConnectorType; 
 
 
 
#endif
Merci pour vos r�ponses.