<div dir="ltr"><br><div class="gmail_quote"><div dir="ltr">Hi,<div><br></div><div>I tried before woth SetResliceAxes, but I didn't get how to use a vtkMatrix4x4 as I said in another post.</div><div><br></div><div>It was working with SetResliceTransform, until I saw that.</div><div><br></div><div><br></div><div>I tried to do this:</div><div><br></div><div><pre style="margin-top:0px;margin-bottom:0px"><pre style="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)">ViewerWidget</span><span style="color:rgb(0,0,0)">::</span><span style="color:rgb(0,0,0)">rotateCalculate</span><span style="color:rgb(0,0,0)">(</span><span style="color:rgb(128,128,0)">int</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">angle</span><span style="color:rgb(0,0,0)">,</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(128,128,0)">double</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">axis</span><span style="color:rgb(0,0,0)">[])</span></pre>
<pre style="margin-top:0px;margin-bottom:0px"><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(128,128,0)">double</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">bounds</span><span style="color:rgb(0,0,0)">[</span><span style="color:rgb(0,0,128)">6</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(128,0,0)">con</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><span style="color:rgb(0,0,0)">GetBounds</span><span style="color:rgb(0,0,0)">(</span><span style="color:rgb(0,0,0)">bounds</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(128,128,0)">double</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">center</span><span style="color:rgb(0,0,0)">[</span><span style="color:rgb(0,0,128)">3</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)">center</span><span style="color:rgb(0,0,0)">[</span><span style="color:rgb(0,0,128)">0</span><span style="color:rgb(0,0,0)">]</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(0,0,0)">(</span><span style="color:rgb(0,0,0)">bounds</span><span style="color:rgb(0,0,0)">[</span><span style="color:rgb(0,0,128)">1</span><span style="color:rgb(0,0,0)">]</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(0,0,0)">bounds</span><span style="color:rgb(0,0,0)">[</span><span style="color:rgb(0,0,128)">0</span><span style="color:rgb(0,0,0)">])</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(0,0,128)">2.0</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)">center</span><span style="color:rgb(0,0,0)">[</span><span style="color:rgb(0,0,128)">1</span><span style="color:rgb(0,0,0)">]</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(0,0,0)">(</span><span style="color:rgb(0,0,0)">bounds</span><span style="color:rgb(0,0,0)">[</span><span style="color:rgb(0,0,128)">3</span><span style="color:rgb(0,0,0)">]</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(0,0,0)">bounds</span><span style="color:rgb(0,0,0)">[</span><span style="color:rgb(0,0,128)">2</span><span style="color:rgb(0,0,0)">])</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(0,0,128)">2.0</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)">center</span><span style="color:rgb(0,0,0)">[</span><span style="color:rgb(0,0,128)">2</span><span style="color:rgb(0,0,0)">]</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(0,0,0)">(</span><span style="color:rgb(0,0,0)">bounds</span><span style="color:rgb(0,0,0)">[</span><span style="color:rgb(0,0,128)">5</span><span style="color:rgb(0,0,0)">]</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(0,0,0)">bounds</span><span style="color:rgb(0,0,0)">[</span><span style="color:rgb(0,0,128)">4</span><span style="color:rgb(0,0,0)">])</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(0,0,128)">2.0</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(128,0,0)">transform</span><span style="color:rgb(0,0,0)">-></span><span style="color:rgb(0,0,0)">Translate</span><span style="color:rgb(0,0,0)">(</span><span style="color:rgb(0,0,0)">center</span><span style="color:rgb(0,0,0)">[</span><span style="color:rgb(0,0,128)">0</span><span style="color:rgb(0,0,0)">],</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">center</span><span style="color:rgb(0,0,0)">[</span><span style="color:rgb(0,0,128)">1</span><span style="color:rgb(0,0,0)">],</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">center</span><span style="color:rgb(0,0,0)">[</span><span style="color:rgb(0,0,128)">2</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(128,0,0)">transform</span><span style="color:rgb(0,0,0)">-></span><span style="color:rgb(0,0,0)">RotateWXYZ</span><span style="color:rgb(0,0,0)">(</span><span style="color:rgb(0,0,0)">angle</span><span style="color:rgb(0,0,0)">,</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">axis</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(128,0,0)">transform</span><span style="color:rgb(0,0,0)">-></span><span style="color:rgb(0,0,0)">Translate</span><span style="color:rgb(0,0,0)">(-</span><span style="color:rgb(0,0,0)">center</span><span style="color:rgb(0,0,0)">[</span><span style="color:rgb(0,0,128)">0</span><span style="color:rgb(0,0,0)">],</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">-</span><span style="color:rgb(0,0,0)">center</span><span style="color:rgb(0,0,0)">[</span><span style="color:rgb(0,0,128)">1</span><span style="color:rgb(0,0,0)">],</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">-</span><span style="color:rgb(0,0,0)">center</span><span style="color:rgb(0,0,0)">[</span><span style="color:rgb(0,0,128)">2</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(128,0,0)">reslicer</span><span style="color:rgb(0,0,0)">-></span><span style="font-style:italic;color:rgb(0,0,0)">SetResliceTransform</span><span style="color:rgb(0,0,0)">(</span><span style="color:rgb(128,0,0)">transform</span><span style="color:rgb(0,0,0)">);</span></pre><pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(0,0,0)"><br></span></pre><pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(0,0,0)">    // added this line, </span></pre><pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">    </span><span style="color:rgb(128,0,0)">reslicer</span><span style="color:rgb(0,0,0)">-></span><span style="font-style:italic;color:rgb(0,0,0)">SetOutputExtent</span><span style="color:rgb(0,0,0)">(</span><span style="color:rgb(0,0,0)">bounds</span><span style="color:rgb(0,0,0)">[</span><span style="color:rgb(0,0,128)">2</span><span style="color:rgb(0,0,0)">],</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">bounds</span><span style="color:rgb(0,0,0)">[</span><span style="color:rgb(0,0,128)">3</span><span style="color:rgb(0,0,0)">],</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">bounds</span><span style="color:rgb(0,0,0)">[</span><span style="color:rgb(0,0,128)">0</span><span style="color:rgb(0,0,0)">],</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">bounds</span><span style="color:rgb(0,0,0)">[</span><span style="color:rgb(0,0,128)">1</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)">bounds</span><span style="color:rgb(0,0,0)">[</span><span style="color:rgb(0,0,128)">4</span><span style="color:rgb(0,0,0)">],</span><span style="color:rgb(192,192,192)"> </span><span style="color:rgb(0,0,0)">bounds</span><span style="color:rgb(0,0,0)">[</span><span style="color:rgb(0,0,128)">5</span><span style="color:rgb(0,0,0)">]);</span></pre><pre style="margin-top:0px;margin-bottom:0px"><br></pre><pre style="margin-top:0px;margin-bottom:0px"><span style="color:rgb(192,192,192)">    </span><span style="color:rgb(128,0,0)">reslicer</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="margin-top:0px;margin-bottom:0px"><span style="color:rgb(0,0,0)">}</span></pre></pre></div><div><br></div><div><div>I got an exception : read access violation on <span style="color:rgb(128,0,128)">vtkImageMapToWindowLevelColors</span><span style="color:rgb(0,0,0)">::</span><span style="font-style:italic;color:rgb(0,0,0)">ThreadedRequestData</span></div><div>even with square images.</div></div><div><br></div><div>The bound values for a non square-image (multiframe):</div><div>299.5, 898.5, 214.5, 643.5, 4.5, 13.5</div><div><br></div><div>The bound values for the square image (multiframe):</div><div>127.5, 382.5, 127.5, 382.5, 521.024, 1563.0749</div><div><br></div></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><div class="gmail_quote">2015-09-16 22:49 GMT+02:00 David Gobbi <span dir="ltr"><<a href="mailto:david.gobbi@gmail.com" target="_blank">david.gobbi@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 class="gmail_extra"><div class="gmail_quote"><span>On Wed, Sep 16, 2015 at 1:46 PM, Siavash Khallaghi <span dir="ltr"><<a href="mailto:siavashk@ece.ubc.ca" target="_blank">siavashk@ece.ubc.ca</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi Marcos,<br>
<br>
Can you compare the extent of the output of vtkImageReslice against its<br>
input? My gut feeling is that they are not equal.<br></blockquote><div><br></div></span><div>I suggest to use SetResliceAxes() (using transform->GetMatrix()) instead of</div><div>SetResliceTransform.  Here is why:</div><div><br></div><div>When you use SetResliceAxes(), vtkImageReslice will transform the input</div><div>sampling (i.e. the extent and spacing) so that the output extent is rotated as</div><div>compared to the input extent.</div><div><br></div><div>Another option is to manually set the output extent, with reslice->SetOutputExtent().</div><span><font color="#888888"><div><br></div><div> - David</div></font></span></div></div></div>
</blockquote></div><br></div>
</div></div></div><br></div>