[Rtk-users] How to determine the position and size of reconstructed volume

Deepak Roy Chittajallu cdeepakroy at gmail.com
Wed Feb 10 08:32:12 EST 2016


Sorry for those multiple emails. I felt they were not going through to the
mailing list as they were not showing up in the archives.

Simon, thanks a lot for the reply. I tried "center - 0.5 * scale *
(resolution - 1)". I will try what you suggest and see.

The four valued rotation parameter --- <rotation>0 0 0.705858
0.708353</rotation> --- in the .cal file is apparently a quaternion of unit
length. Can i make an itk::Versor object from the four quaternion values.
And then use its GetMatrix() as the direction as shown below:

itk::Versor<double> gridRot(0, 0, 0.705858, 0.708353);
dummyReconImage->SetDirection( gridRot.GetMatrix() );

I tried this and it still dint seem to give the right reconstruction. Any
suggestions?

Should i be rotating the origin using this matrix before setting it using
SetOrigin() maybe?

On Wed, Feb 10, 2016 at 7:44 AM, Simon Rit <simon.rit at creatis.insa-lyon.fr>
wrote:

> Hi,
> I haven't used the Digisens geometry reader so I hope that it works fine.
> Be careful with it because I don't think it's been thoroughly tested.
> Regarding the definition of the volume, in ITK, the origin is the
> coordinate of the first voxel. This is what allows you to place the volume
> at the right location. Using your grid parameters, I would say that you
> have to set the origin as (coordinate-by-coordinate)
> scale * 0.5 * (resolution-1) + center
> so that the center of the reconstructed volume is around the "center"
> parameter of your xml file.
> The direction would allow you to tilt your volume but since I don't
> understand the digisens parameter, I can't help you. I advise you to work
> on it later.
> I hope this helps. Good luck!
> Simon
>
>
> On 10/02/2016 02:03, Deepak Roy Chittajallu wrote:
>
> Hello All,
>
> I have at hand a stack of projection images and the projection geometry
> defined in a .cal file of digisens. I am trying to use RTK to do the
> reconstruction.
>
> I used rtk::DigisensGeometryReader
> <http://www.openrtk.org/Doxygen/classrtk_1_1DigisensGeometryReader.html> to
> read the .cal file and generate the geometry.
>
> Then i call rtk::FDKConeBeamReconstructionFilter
> <http://www.openrtk.org/Doxygen/classrtk_1_1FDKConeBeamReconstructionFilter.html> to
> do the reconstruction by supplying to it as Inputs -- the geometry, a dummy
> reference image of the reconstructed volume (with origin, spacing, size,
> direction etc), and the stack of projection images.
>
> But i am getting a blank volume as reconstruction.
>
> I suspect the problem is with positioning the reconstructed volume
> (specified via the dummy reference image).
>
> As a sample attached is the digisens .cal file that RTK uses for testing
> purposes which looks very similar to mine.
>
> In lines 642-656, it seems to define the postion, size, and spacing of the
> reconstructed volume via the following schema:
>
> ---------------------------------------------------------------------
>
>  <Grid>
>   <rotation>0 0 0.705858 0.708353</rotation>
>   <center>-1.23119 -16.6554 10.2144</center>
>   <scale>0.2 0.2 0.2</scale>
>   <resolution>289 399 360</resolution>
>   <autoRotation>true</autoRotation>
>   <cylinderConstraint>false</cylinderConstraint>
>   <cylinderConstraintFromGrid>false</cylinderConstraintFromGrid>
>   <name>C:/Documents/2011_02_14_15-15-12_FenteAl/reconstruction.vol</name>
>   <format>2</format>
>   <beamHardening>0</beamHardening>
>   <background>0</background>
>   <colorscaling>1 0</colorscaling>
>   <rawOutput></rawOutput>
>  </Grid>
>
> -----------------------------------------------------------------------
>
> I understand the <scale> (spacing in mm) and <resolution> (size) elements.
> These can be used to SetSize() and SetSpacing() of the dummy reconstructed
> volume provided as input to the reconstruction filter.
>
> I dont know how to translate the <rotation> and <center> to SetOrigin(),
> and SetDirection() of the dummy reconstructed volume.
>
> Does anyone know how to do this?
>
> Or alternatively, is there a way to automatically set these to reconstruct
> the maximum possible extent of the object positioned in between the source
> and detector?
>
> Regards,
>
> Deepak
>
>
> _______________________________________________
> Rtk-users mailing listRtk-users at public.kitware.comhttp://public.kitware.com/mailman/listinfo/rtk-users
>
>
>


-- 
Deepak Roy Chittajallu, Ph.D.
R&D Engineer, Medical Computing Team
Kitware Inc <http://www.kitware.com/>, Carrboro, NC, USA
E-mail: cdeepakroy at gmail.com
URL: http://www.drchittajallu.info
Linkedin: https://www.linkedin.com/in/cdeepakroy
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/rtk-users/attachments/20160210/067c049e/attachment-0010.html>


More information about the Rtk-users mailing list