<div dir="ltr"><div class="gmail_default" style="font-family:verdana,sans-serif">Dear All</div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif">I am not familiar with c++, so I would like to have your suggestion in memory management in VTK/Qt.</div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif">I have a class to read a series of CT images constructed like this</div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default"><pre style="font-family:verdana,sans-serif;margin-top:0px;margin-bottom:0px"><span style="color:rgb(128,0,128)">DICOMReader</span><span style="color:rgb(0,0,0)">::</span><span style="color:rgb(0,0,0)">DICOMReader</span><span style="color:rgb(0,0,0)">(</span><span style="color:rgb(128,0,128)">QWidget</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">*</span><span style="color:rgb(0,0,0)">parent</span><span style="color:rgb(0,0,0)">)</span></pre>
<pre style="font-family:verdana,sans-serif;margin-top:0px;margin-bottom:0px"><span style="color:rgb(0,0,0)">{</span></pre>
<pre style="font-family:verdana,sans-serif;margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">    </span><span style="color:rgb(128,128,0)">this</span><span style="color:rgb(0,0,0)">-></span><span style="color:rgb(128,0,0)">ImageSet</span><span style="color:rgb(0,0,0)">=</span><span style="color:rgb(128,0,128)">vtkSmartPointer</span><span style="color:rgb(0,0,0)"><</span><span style="color:rgb(128,0,128)">vtkImageData</span><span style="color:rgb(0,0,0)">>::</span><span style="color:rgb(0,0,0)">New</span><span style="color:rgb(0,0,0)">();</span></pre>
<pre style="font-family:verdana,sans-serif;margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">    </span></pre>
<pre style="font-family:verdana,sans-serif;margin-top:0px;margin-bottom:0px"><span style="color:rgb(0,0,0)">}</span></pre><pre style="font-family:verdana,sans-serif;margin-top:0px;margin-bottom:0px"><span style="color:rgb(0,0,0)"><br></span></pre><pre style="margin-top:0px;margin-bottom:0px"><pre style="font-family:verdana,sans-serif;margin-top:0px;margin-bottom:0px"><span style="color:rgb(128,0,128)">DICOMReader</span><span style="color:rgb(0,0,0)">::~</span><span style="color:rgb(128,0,128)">DICOMReader</span><span style="color:rgb(0,0,0)">()</span></pre><font face="verdana, sans-serif">
</font><pre style="font-family:verdana,sans-serif;margin-top:0px;margin-bottom:0px"><span style="color:rgb(0,0,0)">{</span></pre><pre style="font-family:verdana,sans-serif;margin-top:0px;margin-bottom:0px"><br></pre><font face="verdana, sans-serif">
</font><pre style="font-family:verdana,sans-serif;margin-top:0px;margin-bottom:0px"><span style="color:rgb(0,0,0)">}</span></pre><pre style="font-family:verdana,sans-serif;margin-top:0px;margin-bottom:0px"><br></pre><font face="verdana, sans-serif">
</font><pre style="font-family:verdana,sans-serif;margin-top:0px;margin-bottom:0px"><span style="color:rgb(128,128,0)">void</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(128,0,128)">DICOMReader</span><span style="color:rgb(0,0,0)">::</span><span style="color:rgb(0,0,0)">readImageSeries</span><span style="color:rgb(0,0,0)">()</span></pre><font face="verdana, sans-serif">
</font><pre style="font-family:verdana,sans-serif;margin-top:0px;margin-bottom:0px"><span style="color:rgb(0,0,0)">{//reading code goes here, only the last filter is shown here</span></pre><pre style="margin-top:0px;margin-bottom:0px"><pre style="font-family:verdana,sans-serif;margin-top:0px;margin-bottom:0px"><span style="color:rgb(128,128,0)">     typedef</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(128,0,128)">itk</span><span style="color:rgb(0,0,0)">::</span><span style="color:rgb(128,0,128)">ImageToVTKImageFilter</span><span style="color:rgb(0,0,0)"><</span><span style="color:rgb(128,0,128)">InputImageType</span><span style="color:rgb(0,0,0)">></span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(128,0,128)">ConnectorType</span><span style="color:rgb(0,0,0)">;</span></pre><pre style="font-family:verdana,sans-serif;margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">    </span><span style="color:rgb(128,0,128)">ConnectorType</span><span style="color:rgb(0,0,0)">::</span><span style="color:rgb(128,0,128)">Pointer</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">Converter</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">=</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(128,0,128)">ConnectorType</span><span style="color:rgb(0,0,0)">::</span><span style="color:rgb(0,0,0)">New</span><span style="color:rgb(0,0,0)">();</span></pre><pre style="font-family:verdana,sans-serif;margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">    </span><span style="color:rgb(0,0,0)">Converter</span><span style="color:rgb(0,0,0)">-></span><span style="color:rgb(0,0,0)">SetInput</span><span style="color:rgb(0,0,0)">(</span><span style="color:rgb(0,0,0)">reader</span><span style="color:rgb(0,0,0)">-></span><span style="color:rgb(0,0,0)">GetOutput</span><span style="color:rgb(0,0,0)">());</span></pre><pre style="font-family:verdana,sans-serif;margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">    </span><span style="color:rgb(0,0,0)">Converter</span><span style="color:rgb(0,0,0)">-></span><span style="font-style:italic;color:rgb(0,0,0)">Update</span><span style="color:rgb(0,0,0)">();</span></pre><pre style="font-family:verdana,sans-serif;margin-top:0px;margin-bottom:0px"><span style="font-family:verdana,sans-serif;color:rgb(192,192,192)">    </span><span style="font-family:verdana,sans-serif;color:rgb(128,128,0)">this</span><span style="font-family:verdana,sans-serif;color:rgb(0,0,0)">-></span><span style="font-family:verdana,sans-serif;color:rgb(128,0,0)">ImageSet</span><span style="font-family:verdana,sans-serif;color:rgb(0,0,0)">=</span><span style="font-family:verdana,sans-serif;color:rgb(0,0,0)">Converter</span><span style="font-family:verdana,sans-serif;color:rgb(0,0,0)">-></span><span style="font-family:verdana,sans-serif;color:rgb(0,0,0)">GetOutput</span><span style="font-family:verdana,sans-serif;color:rgb(0,0,0)">();</span></pre><pre style="font-family:verdana,sans-serif;margin-top:0px;margin-bottom:0px"><span style="font-family:verdana,sans-serif;color:rgb(0,0,0)">}</span></pre><pre style="font-family:verdana,sans-serif;margin-top:0px;margin-bottom:0px"><span style="font-family:verdana,sans-serif;color:rgb(0,0,0)"><br></span></pre><pre style="font-family:verdana,sans-serif;margin-top:0px;margin-bottom:0px"><span style="font-family:verdana,sans-serif;color:rgb(0,0,0)">then I pass this image to a viewer class like this:</span></pre><pre style="font-family:verdana,sans-serif;margin-top:0px;margin-bottom:0px"><span style="font-family:verdana,sans-serif;color:rgb(0,0,0)"><br></span></pre><pre style="font-family:verdana,sans-serif;margin-top:0px;margin-bottom:0px"><pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(0,128,0)">//Read</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,128,0)">image</span></pre><pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">    </span><span style="color:rgb(128,0,128)">DICOMReader</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">*</span><span style="color:rgb(0,0,0)">reader</span><span style="color:rgb(0,0,0)">=</span><span style="color:rgb(128,128,0)">new</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(128,0,128)">DICOMReader</span><span style="color:rgb(0,0,0)">(</span><span style="color:rgb(128,128,0)">this</span><span style="color:rgb(0,0,0)">);</span></pre><pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">    </span><span style="color:rgb(0,0,0)">reader</span><span style="color:rgb(0,0,0)">-></span><span style="color:rgb(0,0,0)">readImageSeries</span><span style="color:rgb(0,0,0)">();</span></pre></pre><pre style="font-family:verdana,sans-serif;margin-top:0px;margin-bottom:0px"><span style="font-family:verdana,sans-serif;color:rgb(0,0,0)"><br></span></pre><pre style="margin-top:0px;margin-bottom:0px"><pre style="font-family:verdana,sans-serif;margin-top:0px;margin-bottom:0px"><span style="color:rgb(128,0,128)">ImageViewer2D</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">*</span><span style="color:rgb(0,0,0)">ViewerEBRT</span><span style="color:rgb(0,0,0)">=</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(128,128,0)">new</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(128,0,128)">ImageViewer2D</span><span style="color:rgb(0,0,0)">();</span></pre><pre style="font-family:verdana,sans-serif;margin-top:0px;margin-bottom:0px"><span style="color:rgb(0,0,0)">ViewerEBRT</span><span style="color:rgb(0,0,0)">-></span><span style="color:rgb(0,0,0)">SetImageData</span><span style="color:rgb(0,0,0)">(</span><span style="color:rgb(0,0,0)">reader</span><span style="color:rgb(0,0,0)">-></span><span style="color:rgb(128,0,0)">ImageSet</span><span style="color:rgb(0,0,0)">);</span></pre><pre style="font-family:verdana,sans-serif;margin-top:0px;margin-bottom:0px"><span style="color:rgb(0,0,0)"><br></span></pre><pre style="font-family:verdana,sans-serif;margin-top:0px;margin-bottom:0px"><span style="color:rgb(0,0,0)">SetImageData is defined as </span></pre><pre style="font-family:verdana,sans-serif;margin-top:0px;margin-bottom:0px"><span style="color:rgb(0,0,0)"><br></span></pre><pre style="margin-top:0px;margin-bottom:0px"><pre style="font-family:verdana,sans-serif;margin-top:0px;margin-bottom:0px"><span style="color:rgb(128,128,0)">void</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(128,0,128)">ImageViewer2D</span><span style="color:rgb(0,0,0)">::</span><span style="color:rgb(0,0,0)">SetImageData</span><span style="color:rgb(0,0,0)">(</span><span style="color:rgb(128,0,128)">vtkImageData</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">*</span><span style="color:rgb(0,0,0)">Img</span><span style="color:rgb(0,0,0)">)</span></pre><pre style="font-family:verdana,sans-serif;margin-top:0px;margin-bottom:0px"><span style="color:rgb(0,0,0)">{</span></pre><font face="verdana, sans-serif">
</font><pre style="font-family:verdana,sans-serif;margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">    </span><span style="color:rgb(128,128,0)">this</span><span style="color:rgb(0,0,0)">-></span><span style="color:rgb(128,0,0)">ImageData</span><span style="color:rgb(0,0,0)">=</span><span style="color:rgb(0,0,0)">Img</span><span style="color:rgb(0,0,0)">;</span></pre><pre style="font-family:verdana,sans-serif;margin-top:0px;margin-bottom:0px"><span style="color:rgb(0,0,0)">}</span></pre><pre style="font-family:verdana,sans-serif;margin-top:0px;margin-bottom:0px"><span style="color:rgb(0,0,0)"><br></span></pre><pre style="font-family:verdana,sans-serif;margin-top:0px;margin-bottom:0px"><span style="color:rgb(0,0,0)">Looks likes there is some silly mistake they way data is passed on.</span></pre><pre style="font-family:verdana,sans-serif;margin-top:0px;margin-bottom:0px"><span style="color:rgb(0,0,0)"><br></span></pre><pre style="font-family:verdana,sans-serif;margin-top:0px;margin-bottom:0px"><span style="color:rgb(0,0,0)">Can anyone suggest me a better way.</span></pre><pre style="font-family:verdana,sans-serif;margin-top:0px;margin-bottom:0px"><span style="color:rgb(0,0,0)"><br></span></pre><pre style="font-family:verdana,sans-serif;margin-top:0px;margin-bottom:0px"><span style="color:rgb(0,0,0)"><br></span></pre><pre style="font-family:verdana,sans-serif;margin-top:0px;margin-bottom:0px"><span style="color:rgb(0,0,0)"><br></span></pre><pre style="margin-top:0px;margin-bottom:0px"><font color="#000000">Thanks</font><font face="verdana, sans-serif"><br></font></pre><pre style="font-family:verdana,sans-serif;margin-top:0px;margin-bottom:0px"><span style="color:rgb(0,0,0)"><br></span></pre><pre style="font-family:verdana,sans-serif;margin-top:0px;margin-bottom:0px"><span style="color:rgb(0,0,0)"><br></span></pre><pre style="font-family:verdana,sans-serif;margin-top:0px;margin-bottom:0px"><span style="color:rgb(0,0,0)">Jothy</span></pre></pre></pre></pre></pre></div></div>