[Rtk-users] Python Wrapping

Johnson Keiriz jkeiriz at theobjects.com
Fri Mar 18 15:20:35 EDT 2016


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

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/rtk-users/attachments/20160318/2e9e1881/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/2e9e1881/attachment-0010.jpe>


More information about the Rtk-users mailing list