<div dir="ltr"><div><div>The problem is in the file. I don't know why it works with that file without that line. Really weird.<br><br></div>I just don't get it.<br><br></div>I will try with other files.<br><br></div>
<div class="gmail_extra"><br><br><div class="gmail_quote">2014-08-15 13:03 GMT+02:00 Marcos <span dir="ltr"><<a href="mailto:fotosentido@gmail.com" target="_blank">fotosentido@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr"><div><div><div><div><div><div><div><div>Well, now I don't understand at all.<br><br></div>The problem with itk ImageFileReader doesn't occur when I add the writer to the pipeline... it's when I create the vtkJPEGWriter!!!!<br>

<br></div>The line:<br></div><div class="">vtkJPEGWriter* writer = vtkJPEGWriter::New();<br><br></div></div>is the problem.<br><br></div>Why?? It has nothing to do with the reading of the file!! It doesn't execute, it's in another function I don't use at that moment!<br>

<br></div>I comment that line -and all the next with that object- I can read the file.<br><br></div>I just add that line: itkImageFileReader fails!!!<br><br></div>I'm just wasting a lot of time with this.<br><br></div>

<div class="gmail_extra"><br><br><div class="gmail_quote">2014-08-13 12:56 GMT+02:00 Marcos <span dir="ltr"><<a href="mailto:fotosentido@gmail.com" target="_blank">fotosentido@gmail.com</a>></span>:<div><div class="h5">
<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr">Hi,<br><br>I wonder if somebody could help me, I'm stuck with this. Sorry if this was asked before, I didn't find anything similar.<br><br>I got a simple pipeline working, starting with a itk::ImageFileReader who connects to a vtkImageImport, passing through a vtkImageViewer and ending in a QVTKWidget.<br>


<br>Great. I see an image in my QVTKWidget.<br><br>Now, writing to a file. Let's say a JPEG file.<br><br>I tried with a vtkWindowToImageFilter and a vtkJPEGWriter.<br><br>And that's where the weird things take place: the itk::ImageFileReader fails trying to read the file; a segmentation fault in the Update() method.<br>


<br>Why? It's the same file, and the new code is added after.<br><br>I guess it is related to the pipeline, but I don't get how the end of pipeline affects the beginning. Well, I know the Update method from the first object could update the whole pipeline.<br>


<br>So I tried isolating the last part in a method, which is called from a menu option: in my application, I "open" the file. I see a image in my viewer. Then, later, I choose to export the image I see to a file. It's not until that moment that I create the vtkWindowToImageFilter and vtkJPEGWriter objects.<br>


<br>But itk::ImageFileReader fails again. If I comment the last lines, it works again.<br><br>Here is the code, simplified (reader is a global variable: when I call connectVTKWidget, it has called successfully (before I added the writing part) the Update method and I can see a image in the widget):<br>


<br>void DCMBase::connectVTKWidget(QVTKWidget* widget)<br>{<br>    typedef itk::Image< signed short, 2 > TipoImagen;<br>    typedef itk::ImageFileReader< TipoImagen > Tiporeader;<br>    Tiporeader::Pointer reader;<br>


<br>    typedef itk::VTKImageExport< TipoImagen > TipoImagenExport;<br>    TipoImagenExport::Pointer exporter = TipoImagenExport::New();<br>    exporter->SetInput(reader->GetOutput());<br><br>    vtkImageImport *imageImport = vtkImageImport::New();<br>


    this->ConnectPipelines(exporter, imageImport);<br><br>    vtkImageViewer* imageViewer = vtkImageViewer::New();<br>    imageViewer->SetInputConnection(imageImport->GetOutputPort());<br>    widget->SetRenderWindow(imageViewer->GetRenderWindow());<br>


<br>    // with this, itk::ImageFileReader fails!<br>    vtkWindowToImageFilter* filtroAImagen = vtkWindowToImageFilter::New();<br>    filtroAImagen->SetInput(widget->GetRenderWindow());<br>    vtkJPEGWriter* writer = vtkJPEGWriter::New();<br>


    writer->SetFileName("myfile.jpg");<br>    //    writer->SetInputConnection(alg->GetOutputPort());<br><br>    try<br>    {<br>        writer->Update();<br>    }<br>    catch (itk::ExceptionObject& e)<br>


    {<br>        std::cerr << "Excepción en escritura:" <<std::endl;<br>        std::cerr << e << std::endl;<br>    }<br><br>    imageViewer->Render();<br>}<br><br><br><br>Am I missing something? Thanks in advance.<br>


</div>
</blockquote></div></div></div><br></div>
</blockquote></div><br></div>