Hi all,

I'd like to view my vtkPolyData on mitk by a pointer to mitk::Image.

I have a vtkPolyData image and would like to convert it to an mitk image
with a pointer to outputImage which defined:
mitk::Image::Pointer outputImage = this->GetOutput();

I've already done:

vtkPolyData* vtkPol = vtkPolyData::New();
mitk::Surface::Pointer surface = mitk::Surface::New();
surface->SetVtkPolyData(vtkPol,0);
surface->Update();
mitk::SurfacToImageFilter* surface2Mitk = mitk::SufaceToImageFilter::New();
surface2Mitk->SetInput(surface);
surface2Mitk->Update();

What should I do in order to get that surface by outputImage?
* I'd like to mention again that the conversion to a surface isn't really
necessary for me. I just want to view my result from some filters that
returned a vtkPolData by an mitk image.
* Sascha offered a way to do that with a DataStorage/node, but I don't know
how to get that Data into my pointer:
mitk::Image::Pointer outputImage = this->GetOutput(0);

Any way to do that will be warmly welcome.


On Fri, Nov 11, 2011 at 7:21 PM, Fetzer, Andreas <
[email protected]> wrote:

> Hi Miri,
>
> if you want to create and image out of a surface you can use the
> mitkSurfaceToImageFilter which converts surface data into pixel data.
>
> Regards
> Andreas#
>
> On 11.11.2011, at 17:32, Miri Trope wrote:
>
> Hi Miklos,
>
> My Exception is:
> "..\..\..\CMakeExternals\Source\ITK\Code\Common\itkProcessObject.cxx:981:
> itk::ERROR: myModule:(18F41FB8): At least 1 inputs are required but only 0
> are specified"
>
> In the output from Debug of visual studio:
> ERROR: In //\//\CMakeExternals\Source\VTK\Rendering\vtkPolyDataMapper.cxx,
> line 60 vtkPaintPolyDataMapper (18F4D168) : Mapper has no input
>
> ERROR: In //\//\CMakeExternals\Source\VTK\Rendering\vtkOpenGLTexture.cxx,
> line 196 vtkOpenGLTexture (188432F0): No scalar value found for texture
> input!
>
> what might be the reason for that run time error?
>
> * another conversion question which can save my time: I have a pointer to
> a mitk::surface data and would like to view that surface on mitk. I might
> need to convert that surface to an mitk::image. how should I do this?
>
>
> Thanks,
> Miri
> On Thu, Nov 10, 2011 at 11:48 AM, Miklos Espak <[email protected]<mailto:
> [email protected]>> wrote:
> Hi Miri,
>
> in your original e-mail there was this line:
>
>   itk::Image < ImageType > ::Pointer    itkImage_1;
>
> now there is these lines:
>
>
>  typedef    unsigned short        InputPixelType;
>  typedef     itk::Image    < InputPixelType,    3    >    InputImageType;
>  itk::Image< InputPixelType, 3>::Pointer itkImage_1;
>
> These are different. In the first case you have a 2D image, in the second
> case 3D.
>
> If the exception is thrown by the Update() function, it means that it is
> thrown by the filter's GenerateData function (or from its call chain). So,
> I still think that there is a type mismatch during the cast.
>
> I suggest to put the Update call into an exception handler, catch
> itk::ExceptionObject, and print its message. (As I remember, it is the
> what() function that tells it to you.)
>
> Best,
> Miklos
>
> On Thu, Nov 10, 2011 at 9:35 AM, Miri Trope <[email protected]<mailto:
> [email protected]>> wrote:
> Thank you for tying to help me.
>
> Casting to the exact input image type is what I tryied to implement (after
> checking it with the debugger).
> Actually, I ran it again with these commands, but received the mentioned
> error.
>
>  typedef    unsigned short        InputPixelType;
>  typedef     itk::Image    < InputPixelType,    3    >    InputImageType;
>  itk::Image< InputPixelType, 3>::Pointer itkImage_1;
>
> - I'd like to mention again that the error accepted in the following
> command:
>  myModulePointer->Update(); // a command at the file: MyPlugInView.cpp
> - My application was generated by the CTK's generator and I just changed
> that application in order to get a multiple number of input images (instead
> of one input image, as the generator implemented).
>
>
> On Wed, Nov 9, 2011 at 10:42 PM, Miklos Espak <[email protected]<mailto:
> [email protected]>> wrote:
> Hi,
>
> are these 2D images?
>
> The itk::Image template class expects two parameters, the pixel type and
> the dimension. For the dimension there is a default value that is 2. That's
> why your code does not cause compile error.
>
> However, you must cast the mitk::Image into exactly the same kind of
> itk::Image. If you have a 3D mitk::Image, you cannot cast it into a 2D itk
> image. Even the pixel types must be the same.
>
> In your code:
>  itk::Image < ImageType > ::Pointer    itkImage_1;
>
> The ImageType name is rather misleading, since a primitive type should be
> there, typically.
>
> Best,
> Miklos
>
> On Wed, Nov 9, 2011 at 8:41 PM, Miri Trope <[email protected]<mailto:
> [email protected]>> wrote:
> Hi everyone,
>
> I manipulated the ability to select and manipulate four 3D input images
> from a known type (all of them have the same type). I mean that the user
> has to pick four images on mitk platform and run my module.
> But it returns a run-time error which described below. That run time
> returned after the command:
> myModulePointer->Update();
>
> In addition below is my code, please help me to figure it out. It's just
> my first time to manipulate things like that ...
>
> run time error
> ==========
> Unhandled exception at 0x7d4e237e in MyApp.exe: Microsoft C++ exception:
> itk::ExceptionObject at memory location 0x00d9b640..
> First-chance exception at 0x7d4e237e in MyApp.exe: Microsoft C++
> exception: [rethrow] at memory location 0x00000000..
> ==========
>
> MyPlugInView.cpp
> -----------------
> void MyPlugInView::DoImageProcessing()
> {
>  std::vector<mitk::DataNode*> nodes = this->GetDataManagerSelection();
>  myModule::Pointer myModulePointer = myModule::New();
>
>  while(!nodes.empty()) // set the input images to const member pointers of
> class MyModule
>  {
>    mitk::DataNode* node = nodes.back();
>    nodes.pop_back();
>    mitk::BaseData* data = node->GetData();
>    mitk::Image* image = dynamic_cast<mitk::Image*>( data );
>
>    // I did the next assignment for each image by switching an index in
> [N=1:numOfImages]
>   // these assignments really work! each command assigns the input image
> to her member pointer
>    myModulePointer->SetinputImage_N(image);
>    ...
>  }
>    myModulePointer->Update();// here I get the run time error
> }
>
> MyModule.h
> -------------
> class MyModuleLib_EXPORT MyModule : public mitk::ImageToImageFilter
> {
> public:
>  void MyFunction( mitk::Image::Pointer outputImage );
>  // pointers to mitk selected input images
>  mitk::Image::ConstPointer m_inputImage_1;
>  mitk::Image::ConstPointer m_inputImage_2;
>  mitk::Image::ConstPointer m_inputImage_3;
>  mitk::Image::ConstPointer m_inputImage_4;
>
>  void GenerateData();
>
> protected:
>  MyModule();
>  ~MyModule();
> };
>
> MyModule.cpp
> ------------
> void MyModule::MyFunction( mitk::Image::Pointer outputImage )
> {
>  itk::Image < ImageType > ::Pointer    itkImage_1;
>  mitk::CastToItkImage(m_inputImage_1, itkImage_1); // in order to get rid
> of the const pointer of mitk input image
>  mitk::CastToMitkImage(itkImage_1, outputImage); // in order to view my
> result
> }
>
> MyModule::MyModule():
> m_inputImage_1(0),m_inputImage_2(0),m_inputImage_3(0),m_inputImage_4(0)
> {
>  this->SetNumberOfInputs(4); // four selected inputImages
> }
>
> MyModule::~MyModule()
> {
> }
>
> void MyModule::GenerateData()
> {
>    mitk::Image::Pointer outputImage = this->GetOutput();
>    MyFunction( outputImage );
> }
>
>
>
>
>
>
>
>
> ------------------------------------------------------------------------------
> RSA(R) Conference 2012
> Save $700 by Nov 18
> Register now
> http://p.sf.net/sfu/rsa-sfdev2dev1
> _______________________________________________
> mitk-users mailing list
> [email protected]<mailto:[email protected]>
> https://lists.sourceforge.net/lists/listinfo/mitk-users
>
>
>
>
>
>
> ------------------------------------------------------------------------------
> RSA(R) Conference 2012
> Save $700 by Nov 18
> Register now
>
> http://p.sf.net/sfu/rsa-sfdev2dev1_______________________________________________
> mitk-users<http://p.sf.net/sfu/rsa-sfdev2dev1_______________________________________________%0Amitk-users>mailing
>  list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/mitk-users
>
>
------------------------------------------------------------------------------
RSA(R) Conference 2012
Save $700 by Nov 18
Register now
http://p.sf.net/sfu/rsa-sfdev2dev1
_______________________________________________
mitk-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mitk-users

Reply via email to