[Rtk-users] Python Wrapping
Johnson Keiriz
jkeiriz at theobjects.com
Fri Mar 18 15:23:09 EDT 2016
To be specific: it gives an error at every CUDA filter !!!
On 3/18/2016 3:20 PM, Johnson Keiriz wrote:
> Hello,
> I have tried to create a .json file for the
> *RegularizedConjugateGradientConeBeamReconstructionFilter *and got the
> below errors while compiling.
>
> The json file contains:
>
> {
> "name" : "RegularizedConjugateGradientConeBeamReconstructionFilter",
> "template_code_filename" : "RTKImageFilter",
> "template_test_filename" : "ImageFilter",
> "number_of_inputs" : 2,
> "doc" : "",
> "output_image_type" : "TImageType",
> "pixel_types" : "RealPixelIDTypeList",
> "filter_type" :
> "rtk::RegularizedConjugateGradientConeBeamReconstructionFilter<InputImageType>",
> "include_files" : [
> "srtkThreeDCircularProjectionGeometry.h"
> ],
> "members" : [],
> "briefdescription" : "Implements regularized conjugate Gradient
> cone-beam reconstruction.",
> "detaileddescription" : ""
> }
>
>
> Error 1 error C2679: binary '=' : no operator found which takes
> a right-hand operand of type
> 'rtk::CudaBackProjectionImageFilter::Pointer' (or there is no
> acceptable conversion)
> [C:\RTK\BUILD\SimpleRTK-build\Code\BasicFilters\src\SimpleRTKBasicFilters2.vcxproj]
> c:\rtk\code\rtkIterativeConeBeamReconstructionFilter.hxx 77 1
> SimpleRTK
> Error 2 error C2679: binary '=' : no operator found which takes
> a right-hand operand of type
> 'rtk::CudaRayCastBackProjectionImageFilter::Pointer' (or there is no
> acceptable conversion)
> [C:\RTK\BUILD\SimpleRTK-build\Code\BasicFilters\src\SimpleRTKBasicFilters2.vcxproj]
> c:\rtk\code\rtkIterativeConeBeamReconstructionFilter.hxx 87 1
> SimpleRTK
> Error 3 error C2679: binary '=' : no operator found which takes
> a right-hand operand of type 'rtk::CudaConstantVolumeSource::Pointer'
> (or there is no acceptable conversion)
> [C:\RTK\BUILD\SimpleRTK-build\Code\BasicFilters\src\SimpleRTKBasicFilters2.vcxproj]
> c:\rtk\code\rtkReconstructionConjugateGradientOperator.hxx 39 1
> SimpleRTK
> Error 4 error C2679: binary '=' : no operator found which takes
> a right-hand operand of type 'rtk::CudaConstantVolumeSource::Pointer'
> (or there is no acceptable conversion)
> [C:\RTK\BUILD\SimpleRTK-build\Code\BasicFilters\src\SimpleRTKBasicFilters2.vcxproj]
> c:\rtk\code\rtkReconstructionConjugateGradientOperator.hxx 40 1
> SimpleRTK
> Error 5 error C2679: binary '=' : no operator found which takes
> a right-hand operand of type 'rtk::CudaLaplacianImageFilter::Pointer'
> (or there is no acceptable conversion)
> [C:\RTK\BUILD\SimpleRTK-build\Code\BasicFilters\src\SimpleRTKBasicFilters2.vcxproj]
> c:\rtk\code\rtkReconstructionConjugateGradientOperator.hxx 41 1
> SimpleRTK
> Error 6 error C2679: binary '=' : no operator found which takes
> a right-hand operand of type
> 'rtk::CudaDisplacedDetectorImageFilter::Pointer' (or there is no
> acceptable conversion)
> [C:\RTK\BUILD\SimpleRTK-build\Code\BasicFilters\src\SimpleRTKBasicFilters2.vcxproj]
> c:\rtk\code\rtkConjugateGradientConeBeamReconstructionFilter.hxx 42
> 1 SimpleRTK
> Error 7 error C2679: binary '=' : no operator found which takes
> a right-hand operand of type 'rtk::CudaConstantVolumeSource::Pointer'
> (or there is no acceptable conversion)
> [C:\RTK\BUILD\SimpleRTK-build\Code\BasicFilters\src\SimpleRTKBasicFilters2.vcxproj]
> c:\rtk\code\rtkConjugateGradientConeBeamReconstructionFilter.hxx 43
> 1 SimpleRTK
> Error 8 error C2679: binary '=' : no operator found which takes
> a right-hand operand of type
> 'rtk::CudaConjugateGradientImageFilter_3f::Pointer' (or there is no
> acceptable conversion)
> [C:\RTK\BUILD\SimpleRTK-build\Code\BasicFilters\src\SimpleRTKBasicFilters2.vcxproj]
> c:\rtk\code\rtkConjugateGradientConeBeamReconstructionFilter.hxx
> 129 1 SimpleRTK
> Error 9 error C2678: binary '*' : no operator found which takes
> a left-hand operand of type 'float' (or there is no acceptable
> conversion)
> [C:\RTK\BUILD\SimpleRTK-build\Code\BasicFilters\src\SimpleRTKBasicFilters2.vcxproj]
> c:\rtk\code\rtkMagnitudeThresholdImageFilter.hxx 59 1 SimpleRTK
> Error 10 error C2679: binary '=' : no operator found which takes
> a right-hand operand of type
> 'rtk::CudaBackProjectionImageFilter::Pointer' (or there is no
> acceptable conversion)
> [C:\RTK\BUILD\SimpleRTK-build\Code\BasicFilters\src\SimpleRTKBasicFilters2.vcxproj]
> c:\rtk\code\rtkIterativeConeBeamReconstructionFilter.hxx 77 1
> SimpleRTK
> Error 11 error C2679: binary '=' : no operator found which takes
> a right-hand operand of type
> 'rtk::CudaRayCastBackProjectionImageFilter::Pointer' (or there is no
> acceptable conversion)
> [C:\RTK\BUILD\SimpleRTK-build\Code\BasicFilters\src\SimpleRTKBasicFilters2.vcxproj]
> c:\rtk\code\rtkIterativeConeBeamReconstructionFilter.hxx 87 1
> SimpleRTK
> Error 12 error C2679: binary '=' : no operator found which takes
> a right-hand operand of type 'rtk::CudaConstantVolumeSource::Pointer'
> (or there is no acceptable conversion)
> [C:\RTK\BUILD\SimpleRTK-build\Code\BasicFilters\src\SimpleRTKBasicFilters2.vcxproj]
> c:\rtk\code\rtkReconstructionConjugateGradientOperator.hxx 39 1
> SimpleRTK
> Error 13 error C2679: binary '=' : no operator found which takes
> a right-hand operand of type 'rtk::CudaConstantVolumeSource::Pointer'
> (or there is no acceptable conversion)
> [C:\RTK\BUILD\SimpleRTK-build\Code\BasicFilters\src\SimpleRTKBasicFilters2.vcxproj]
> c:\rtk\code\rtkReconstructionConjugateGradientOperator.hxx 40 1
> SimpleRTK
> Error 14 error C2679: binary '=' : no operator found which takes
> a right-hand operand of type 'rtk::CudaLaplacianImageFilter::Pointer'
> (or there is no acceptable conversion)
> [C:\RTK\BUILD\SimpleRTK-build\Code\BasicFilters\src\SimpleRTKBasicFilters2.vcxproj]
> c:\rtk\code\rtkReconstructionConjugateGradientOperator.hxx 41 1
> SimpleRTK
> Error 15 error C2679: binary '=' : no operator found which takes
> a right-hand operand of type
> 'rtk::CudaDisplacedDetectorImageFilter::Pointer' (or there is no
> acceptable conversion)
> [C:\RTK\BUILD\SimpleRTK-build\Code\BasicFilters\src\SimpleRTKBasicFilters2.vcxproj]
> c:\rtk\code\rtkConjugateGradientConeBeamReconstructionFilter.hxx 42
> 1 SimpleRTK
> Error 16 error C2679: binary '=' : no operator found which takes
> a right-hand operand of type 'rtk::CudaConstantVolumeSource::Pointer'
> (or there is no acceptable conversion)
> [C:\RTK\BUILD\SimpleRTK-build\Code\BasicFilters\src\SimpleRTKBasicFilters2.vcxproj]
> c:\rtk\code\rtkConjugateGradientConeBeamReconstructionFilter.hxx 43
> 1 SimpleRTK
> Error 17 error C2679: binary '=' : no operator found which takes
> a right-hand operand of type
> 'rtk::CudaConjugateGradientImageFilter_3f::Pointer' (or there is no
> acceptable conversion)
> [C:\RTK\BUILD\SimpleRTK-build\Code\BasicFilters\src\SimpleRTKBasicFilters2.vcxproj]
> c:\rtk\code\rtkConjugateGradientConeBeamReconstructionFilter.hxx
> 129 1 SimpleRTK
> Error 18 error C2678: binary '*' : no operator found which takes
> a left-hand operand of type 'float' (or there is no acceptable
> conversion)
> [C:\RTK\BUILD\SimpleRTK-build\Code\BasicFilters\src\SimpleRTKBasicFilters2.vcxproj]
> c:\rtk\code\rtkMagnitudeThresholdImageFilter.hxx 59 1 SimpleRTK
>
>
> Thanks,
> Johnson
>
> On 3/18/2016 2:16 PM, Johnson Keiriz wrote:
>> Hello,
>> I am trying to do the wrapping for the
>> RegularizedConjugateGradientConeBeamReconstructionFilter, do I need
>> to wrap all the filters that it uses ?
>> Is there any guiding document for the wrapping method?
>>
>> Regards,
>> Johnson
>>
>> On 3/18/2016 9:31 AM, Cyril Mory wrote:
>>> Hi again,
>>>
>>> You got the SART filter right. As for the conjugate gradient, the
>>> filter is actually ConjugateGradientConeBeamReconstructionFilter
>>> (for the 3D non-regularized reconstruction) and
>>> RegularizedConjugateGradientConeBeamReconstructionFilter (its
>>> regularized counterpart).
>>>
>>> The filter you found,
>>> FourDConjugateGradientConeBeamReconstructionFilter, is used for 4D
>>> reconstruction (you need a cardiac or respiratory phase signal). Its
>>> regularized counterpart is FourDROOSTERConeBeamReconstructionFilter.
>>>
>>> In addition to those, RTK also has
>>> ADMMTotalVariationConeBeamReconstructionFilter and
>>> ADMMWaveletsConeBeamReconstructionFilter, which implement the
>>> Alternating Direction Method of Multiplier algorithm.
>>>
>>> You can find a description of these algorithms in
>>> https://hal.inria.fr/tel-00985728/document
>>>
>>> Note that the SART filter has a m_NumberOfProjectionsPerSubset
>>> member. Setting it to 1 (default) gives you SART, setting it to n
>>> with 1 < n < TotalNumberOfProjections gives you OS-SART, and setting
>>> it to n=TotalNumberOfProjections gives you SIRT.
>>>
>>> That's pretty much all there is in RTK at the moment.
>>> Cyril
>>>
>>> On 03/18/2016 02:11 PM, Johnson Keiriz wrote:
>>>> Hello,
>>>> Can you please confirm that the following classes are the ones used
>>>> for the iterative reconstruction:
>>>> 1 - SART: SARTConeBeamReconstructionFilter
>>>> 2- Conjugate gradient:
>>>> FourDConjugateGradientConeBeamReconstructionFilter
>>>>
>>>> Is there a 3D conjugate gradient?
>>>> Are these the only classes for iterative reconstruction?
>>>>
>>>> Thanks,
>>>> Johnson
>>>>
>>>> On 3/18/2016 4:12 AM, Cyril Mory wrote:
>>>>> Hi Johnson,
>>>>>
>>>>> Regarding the iterative methods:
>>>>> - In SART, you can use the CUDA forward and back projectors, but
>>>>> the rest of the calculation is performed on CPU. We do not use
>>>>> SART a lot, so we have not fully optimized it.
>>>>> - Conjugate gradient, on the other hand, is entirely performed on
>>>>> the GPU. Note that a regularized conjugate gradient reconstruction
>>>>> filter is also available (with total variation denoising, wavelets
>>>>> denoising, and positivity enforcement)
>>>>>
>>>>> I hope you will find what you need,
>>>>> Regards,
>>>>> Cyril
>>>>>
>>>>> On 03/17/2016 08:54 PM, Johnson Keiriz wrote:
>>>>>>
>>>>>> Hello,
>>>>>>
>>>>>> I did rebuild and now things are working. I tested reconstruction
>>>>>> with and without the filtering and there were differences.
>>>>>> Though, I am not sure that filtering have provided a better
>>>>>> reconstruction.
>>>>>>
>>>>>> I want to experiment the iterative methods. Can you please
>>>>>> confirm for me which iterative method are fully implemented in
>>>>>> CUDA: is it the conjugate gradient or SART ?
>>>>>>
>>>>>> I have noticed that they are not wrapped at all, any guide on how
>>>>>> to introduce new filters?
>>>>>>
>>>>>> Once I have tested my wrapping, I will submit a github pull-request.
>>>>>>
>>>>>> Thanks,
>>>>>>
>>>>>> Johnson
>>>>>>
>>>>>> *From:*simon.rit at gmail.com [mailto:simon.rit at gmail.com] *On
>>>>>> Behalf Of *Simon Rit
>>>>>> *Sent:* Thursday, March 17, 2016 1:54 PM
>>>>>> *To:* Johnson Keiriz
>>>>>> *Cc:* rtk-users at public.kitware.com
>>>>>> *Subject:* Re: [Rtk-users] Python Wrapping
>>>>>>
>>>>>> Hi,
>>>>>>
>>>>>> Good! Indeed, many things are not wrapped. There is a trick
>>>>>> regarding modifications of the wrappings. You need to either
>>>>>> start from scratch the compilation or delete the file
>>>>>> SimpleRTK-prefix/src/SimpleRTK-stamp/SimpleRTK-configure. This
>>>>>> will trigger a reconfiguration of the SimpleRTK and, hopefully,
>>>>>> account for your modifications.
>>>>>>
>>>>>> Don't hesitate to submit a github pull-request when you have
>>>>>> something working.
>>>>>>
>>>>>> Simon
>>>>>>
>>>>>> On Thu, Mar 17, 2016 at 4:33 PM, Johnson Keiriz
>>>>>> <jkeiriz at theobjects.com <mailto:jkeiriz at theobjects.com>> wrote:
>>>>>>
>>>>>> Hello again,
>>>>>>
>>>>>> I found out about the json wrapping files. I added the wrapping
>>>>>> for all the filters, but I haven’t noticed any effect from
>>>>>> setting the filters !!!
>>>>>>
>>>>>> Any hints ?
>>>>>>
>>>>>> Regards,
>>>>>>
>>>>>> Johnson
>>>>>>
>>>>>> *From:*Rtk-users [mailto:rtk-users-bounces at public.kitware.com]
>>>>>> *On Behalf Of *Johnson Keiriz
>>>>>> *Sent:* Thursday, March 17, 2016 9:23 AM
>>>>>> *To:* rtk-users at public.kitware.com
>>>>>> <mailto:rtk-users at public.kitware.com>; Simon Rit
>>>>>> *Subject:* [Rtk-users] Python Wrapping
>>>>>>
>>>>>> Hello,
>>>>>>
>>>>>> I am using the Python wrapped version of RTK. I have a question
>>>>>> regarding the wrapping:
>>>>>>
>>>>>> It seems that not all functionality is available, for example:
>>>>>> for the *CudaFDKConeBeamReconstructionFilter, *I was not able to
>>>>>> set the cut frequency of the any of the filters
>>>>>>
>>>>>> (RamLaK, Cosine, ShepLogan) except for the Hann . Are the methods
>>>>>> not wrapped ?
>>>>>>
>>>>>> Thanks,
>>>>>>
>>>>>> Johnson
>>>>>>
>>>>>> *Description: cid:image002.jpg at 01CB5984.4EABACE0*
>>>>>>
>>>>>>
>>>>>>
>>>>>> *Johnson Keiriz, PhD
>>>>>> Senior Software Engineer*
>>>>>>
>>>>>> 760 St-Paul W, #101
>>>>>> Montreal, QC
>>>>>> Canada H3C 1M4
>>>>>> tel: (514) 843-3861 <tel:%28514%29%20843-3861>
>>>>>> ext 217
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> Rtk-users mailing list
>>>>>> Rtk-users at public.kitware.com
>>>>>> http://public.kitware.com/mailman/listinfo/rtk-users
>>>>>
>>>>
>>>> --
>>>>
>>>> *Johnson Keiriz, PhD
>>>> Senior Software Engineer*
>>>>
>>>> 760 St-Paul W, #101
>>>> Montreal, QC
>>>> Canada H3C 1M4
>>>> tel: (514) 843-3861
>>>> ext 217
>>>>
>>>
>>
>> --
>>
>> *Johnson Keiriz, PhD
>> Senior Software Engineer*
>>
>> 760 St-Paul W, #101
>> Montreal, QC
>> Canada H3C 1M4
>> tel: (514) 843-3861
>> ext 217
>>
>>
>>
>> _______________________________________________
>> Rtk-users mailing list
>> Rtk-users at public.kitware.com
>> http://public.kitware.com/mailman/listinfo/rtk-users
>
> --
>
> *Johnson Keiriz, PhD
> Senior Software Engineer*
>
> 760 St-Paul W, #101
> Montreal, QC
> Canada H3C 1M4
> tel: (514) 843-3861
> ext 217
>
>
>
> _______________________________________________
> Rtk-users mailing list
> Rtk-users at public.kitware.com
> http://public.kitware.com/mailman/listinfo/rtk-users
--
*Johnson Keiriz, PhD
Senior Software Engineer*
760 St-Paul W, #101
Montreal, QC
Canada H3C 1M4
tel: (514) 843-3861
ext 217
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/rtk-users/attachments/20160318/2de4b46d/attachment-0010.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: image/jpeg
Size: 3930 bytes
Desc: not available
URL: <http://public.kitware.com/pipermail/rtk-users/attachments/20160318/2de4b46d/attachment-0010.jpe>
More information about the Rtk-users
mailing list