Thank you for your reply. mitk::SurfaceToImageFilter seems a method to create image data from surface data just by the class name. (not to create surface data from image data, which I am interested in)
Are you sure that mitk::SurfaceToImageFilter essentially replaces vtkMarchingCubes? Because I can only see a method which takes surface data as input, e.g, SetInput(const mitk::Surface *surface) , not as output. And I cannot find any function that I can specify the isosurface values in that class, as I did it with vtkMarchingCubes. /hm On Tue, Nov 23, 2010 at 6:52 PM, Ivo Wolf <[email protected]> wrote: > Hi, > DICOM and mitk::Image support non-axis-parallel (i.e., rotated) image data > whereas vtkImageData cannot store a rotation matrix and therefore supports > only axis-parallel image data. This is probably the reason for your problem. > Try the mitk::SurfaceToImageFilter class instead of vtkMarchingCubes. > mitk::SurfaceToImageFilter essentially encapsulates vtkMarchingCubes and > takes care of the rotation matrix contained in mitk::Image. > Best, > Ivo > > Hyungmin Kim wrote: >> >> Hello, >> >> Once I posted my problem on this mailing list, but no one answered to that >> post. >> I have a problem of coordinate system mis-match between generated >> polydata (vtkMarchingCubes) and image data (DICOM). >> It seems like this is not just problem of translation (offset), there >> is a mis-match in rotation as well. >> So I am wondering how I can align them. >> Here is the code block which I am using: >> >> vtkMarchingCubes* surfaceCreator = vtkMarchingCubes::New(); >> surfaceCreator->ReleaseDataFlagOn(); >> >> surfaceCreator->SetInput(m_FirstImage->GetVtkImageData()); >> surfaceCreator->SetValue(0, >> m_sliderThreshold->lowerValue()); >> surfaceCreator->SetValue(1, >> m_sliderThreshold->upperValue()); >> surfaceCreator->ComputeNormalsOff(); >> surfaceCreator->ComputeGradientsOff(); >> surfaceCreator->ComputeScalarsOff(); >> surfaceCreator->Update(); >> >> mitk::Surface::Pointer surface = mitk::Surface::New(); >> surface->SetVtkPolyData(surfaceCreator->GetOutput()); >> >> mitk::DataNode::Pointer surfaceNode = >> mitk::DataNode::New(); >> surfaceNode->SetData(surface); >> >> m_DataStorage->Add(surfaceNode); >> >> If you anyone has good idea, just let me know. >> >> /hm >> >> >> ------------------------------------------------------------------------------ >> Increase Visibility of Your 3D Game App & Earn a Chance To Win $500! >> Tap into the largest installed PC base & get more eyes on your game by >> optimizing for Intel(R) Graphics Technology. Get started today with the >> Intel(R) Software Partner Program. Five $500 cash prizes are up for grabs. >> http://p.sf.net/sfu/intelisp-dev2dev >> _______________________________________________ >> mitk-users mailing list >> [email protected] >> https://lists.sourceforge.net/lists/listinfo/mitk-users >> > > ------------------------------------------------------------------------------ Increase Visibility of Your 3D Game App & Earn a Chance To Win $500! Tap into the largest installed PC base & get more eyes on your game by optimizing for Intel(R) Graphics Technology. Get started today with the Intel(R) Software Partner Program. Five $500 cash prizes are up for grabs. http://p.sf.net/sfu/intelisp-dev2dev _______________________________________________ mitk-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/mitk-users
