[Rtk-users] segfault in RTK 2.0

Pierre Daye Pierre.Daye at iba-group.com
Mon Feb 18 01:46:02 EST 2019


Hello,

First of all congrats for the update of RTK and the new Python integration. This is really great for Python users who don't want the whole
C++ armada to test a small reconstruction principle!
I could easily run the first reconstruction and it worked perfectly! However, I tried then to first save the images using these method within
a simulator python class:

    def buildGeometry(self, offsetZ, offsetY):
        geometry = rtk.ThreeDCircularProjectionGeometry.New()
        for x in range(0, self.param['numberOfProjections']):
            angle = self.param['firstAngle'] + x * self.param['angularArc'] / self.param['numberOfProjections']
            geometry.AddProjection(self.param['sid'] + offsetZ,
                self.param['sdd'], angle, self.param['isox'],
                self.param['isoy'], self.param['outOfPlaneAngle'],
                self.param['inPlaneAngle'], self.param['sourceOffsetX'], offsetY)

        return geometry

    def runCBCT(self, filename, offsetZ, offsetY):
        geometry = self.buildGeometry(offsetZ, offsetY)

        constantImageSource = rtk.ConstantImageSource[self.param['TImageType']].New()
        constantImageSource.SetOrigin( self.param['origin'] )
        constantImageSource.SetSpacing( self.param['spacing'] )
        constantImageSource.SetSize( self.param['sizeOutput'] )
        constantImageSource.SetConstant(0.0)
        source = constantImageSource.GetOutput()

        self.rei.SetGeometry(geometry)
        self.rei.SetInput(source)

        projections = self.rei.GetOutput()

        writer = itk.ImageFileWriter[self.param['TImageType']].New()
        writer.SetFileName(filename)
        writer.SetInput(projections)
        writer.Update()

This parts works perfectly and the generated images are OK (checked with IMageJ).
The problems start when I want to reconstruct the volume.

def buildVolumeFromFile(self, file, fileOUT, CBCT):
        geometry = CBCT.buildGeometry(0, 0)
        print("Performing reconstruction")
        TImageType = self.param['TImageType']
        reader = itk.ImageFileReader[TImageType].New()
        reader.SetFileName(file)
        reiImage = reader.GetOutput()

        # Create reconstructed image
        constantImageSource2 = rtk.ConstantImageSource[TImageType].New()
        origin = [ -63.5, -63.5, -63.5 ]
        sizeOutput = [ 128, 128, 128 ]
        constantImageSource2.SetOrigin( origin )
        constantImageSource2.SetSpacing( [1, 1, 1] )
        constantImageSource2.SetSize( sizeOutput )
        constantImageSource2.SetConstant(0.0)
        source2 = constantImageSource2.GetOutput()

        print("Performing reconstruction")
        feldkamp = rtk.FDKConeBeamReconstructionFilter[TImageType].New()
        feldkamp.SetGeometry( geometry )
        feldkamp.SetInput(0, source2)
        feldkamp.SetInput(1, reiImage)
        image = feldkamp.GetOutput()

        print("Masking field-of-view")
        fov = rtk.FieldOfViewImageFilter[TImageType, TImageType].New()
        fov.SetGeometry(geometry)
        fov.SetProjectionsStack(reiImage)
        fov.SetInput(image)
        image = fov.GetOutput()

        writer = itk.ImageFileWriter[TImageType].New()
        writer.SetFileName ( fileOUT )
        writer.SetInput(image)
        writer.Update()

I cannot run this script. It generates a criptic segfault... What am I doing wrong here?
If one of you RTK gurus  could help me, I would greatly appreciate it!

Thanks,

Pierre

Disclaimer | Use of IBA e-communication<https://iba-worldwide.com/disclaimer>

The contents of this e-mail message and any attachments are intended solely for the recipient (s) named above. This communication is intended to be and to remain confidential and may be protected by intellectual property rights. Any use of the information contained herein (including but not limited to, total or partial reproduction, communication or distribution of any form) by persons other than the designated recipient(s) is prohibited. Please notify the sender immediately by e-mail if you have received this e-mail by mistake and delete this e-mail from your system. E-mail transmission cannot be guaranteed to be secure or error-free. Ion Beam Applications does not accept liability for any such errors. Thank you for your cooperation.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://public.kitware.com/pipermail/rtk-users/attachments/20190218/2ff0ee31/attachment.html>


More information about the Rtk-users mailing list