[Rtk-users] Python Wrapping

Simon Rit simon.rit at creatis.insa-lyon.fr
Tue Mar 22 07:56:16 CET 2016


Hi,
We have had the same problem with 
ConjugateGradientConeBeamReconstructionFilter.json that Fabien pushed 2 
days ago. Maybe have a look at this file to see if you can find some 
useful inspiration? Otherwise I'll try to fix your file later.
Simon

On 18/03/2016 20:23, Johnson Keiriz wrote:
> 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
>
>
>
> _______________________________________________
> Rtk-users mailing list
> Rtk-users at public.kitware.com
> http://public.kitware.com/mailman/listinfo/rtk-users

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.creatis.insa-lyon.fr/pipermail/rtk-users/attachments/20160322/8a49f579/attachment.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: image/jpeg
Size: 3930 bytes
Desc: not available
URL: <http://www.creatis.insa-lyon.fr/pipermail/rtk-users/attachments/20160322/8a49f579/attachment.jpe>


More information about the Rtk-users mailing list