[Rtk-users] Parker weighting

Chao Wu wuchao04 at gmail.com
Wed Mar 2 12:59:16 CET 2016


Hi Simon,

I also got a question about how the weighting is performed.

Before the question, first of all there may be an error
in rtk::ThreeDCircularProjectionGeometry::GetAngularGapsWithNext(...). I
cannot see the reason for the factor 0.5 in the following code:
  //Last projection wraps the angle of the first one
  angularGaps[curr->second] = 0.5 * ( sangles.begin()->first +
2*vnl_math::pi - curr->first );
If this is indeed wrong, then the max gap can be underestimated in
the ParkerShortScanImageFilter, which you use for the 20 degree condition.

Then here's the question: why does RTK eliminate the first and last
projections before calculating the weights? The Parker weights are already
all zeros for the first and the last projections involved in the
calculation. If you rule out the first and the last projection in the data
set in advance, you then have four projections with zeros and the effective
scan angle is smaller then the actual short scan, which may lead to an
insufficient data problem.

Best regards,
Chao



2015-12-18 18:18 GMT+01:00 Simon Rit <simon.rit at creatis.insa-lyon.fr>:

> Hi Shiras,
> Sorry for the delayed answer, times are busy. The way RTK computes the
> spanned arc is from the second projection angle to the before last
> projection angle, i.e., in your case
> 209.609216488925-11.6067737022482
> so it's a span of 199 degrees and your cone angle is indeed too large.
> Like I said, this part of RTK is perfectible and there is no way to change
> this but change the code.
> However, the source of artefacts might be something else. On simulated
> data, I tried:
>   rtkprojectshepploganphantom --like original_proj.mhd -g
> geometry_parker_corr.xml -o proj.mha
>   rtkfdk -p . -r proj.mha -o fdk.mha -g geometry_parker_corr.xml
> and the result is not that bad. What do you think? Can you show us a
> snapshot if sg's wrong in your opinion?
> Simon
>
>
> On 09/12/2015 11:01, Shiras Abdurahman wrote:
>
> Dear Simon,
>
> I am attaching the mhd files of projections.
>
> With regards,
> Shiras
>
> On Tue, Dec 8, 2015 at 6:17 PM, Simon Rit <simon.rit at creatis.insa-lyon.fr>
> wrote:
>
>> Hi,
>> The geometry files look ok to me. What is the projection information? If
>> you're still getting the same message as before, I think it's because you
>> don't have enough data. If you send the mhd file of the projections (just
>> the mhd, not the raw data), I can try to test it on simulated data to let
>> you know my feeling.
>> Simon
>>
>> On Tue, Dec 8, 2015 at 5:41 PM, Shiras Abdurahman < <shiraska at gmail.com>
>> shiraska at gmail.com> wrote:
>>
>>> Dear Simon,
>>>
>>> I tried this option and unfortunately it did not work. I added zero
>>> projections and modified geometry files. However, I am getting same
>>> artifacts in the volume. Voxel values changed a little bit that indicates
>>> during backprojection it still considers extreme projections. I am also
>>> getting an output message same as before.
>>>
>>> I am attaching geometry files.
>>>
>>> With regards,
>>> Shiras
>>>
>>> On Tue, Dec 8, 2015 at 10:15 AM, Simon Rit <
>>> <simon.rit at creatis.insa-lyon.fr>simon.rit at creatis.insa-lyon.fr> wrote:
>>>
>>>> So calling AddProjection before and after the loop with an adequate
>>>> gantry_angle should work.
>>>> Simon
>>>>
>>>> On Tue, Dec 8, 2015 at 9:52 AM, Shiras Abdurahman <
>>>> <shiraska at gmail.com>shiraska at gmail.com> wrote:
>>>>
>>>>> Drear Simon,
>>>>>
>>>>> I generate the geometry with system geometry parameters and using
>>>>> AddProjection method.
>>>>>
>>>>> Here is the code
>>>>>
>>>>>
>>>>> rtk::ThreeDCircularProjectionGeometry::Pointer rtk_sys_geometry_;
>>>>> rtk_sys_geometry_ = rtk::ThreeDCircularProjectionGeometry::New();
>>>>> for (uint16_t proj_index = 0; proj_index < num_projections_;
>>>>> proj_index++)
>>>>> {
>>>>>
>>>>> rtk_sys_geometry_->AddProjection(rtk_geom_params_.at(proj_index).sid_mm,
>>>>> rtk_geom_params_.at(proj_index).sdd_mm,
>>>>> rtk_geom_params_.at(proj_index).gantry_angle_deg,
>>>>> rtk_geom_params_.at(proj_index).proj_offset_x_mm,
>>>>> rtk_geom_params_.at(proj_index).proj_offset_y_mm,
>>>>> rtk_geom_params_.at(proj_index).out_plane_angle_deg,
>>>>> rtk_geom_params_.at(proj_index).in_plane_angle_deg,
>>>>> rtk_geom_params_.at(proj_index).src_offset_x_mm,
>>>>> rtk_geom_params_.at(proj_index).src_offset_y_mm);
>>>>> }
>>>>>
>>>>>  And then write to xml file.
>>>>>
>>>>> Shiras
>>>>>
>>>>>
>>>>>
>>>>> On Tue, Dec 8, 2015 at 9:23 AM, Simon Rit <
>>>>> <simon.rit at creatis.insa-lyon.fr>simon.rit at creatis.insa-lyon.fr> wrote:
>>>>>
>>>>>> Hi,
>>>>>> rtkfdk.cxx just read the geometry from a file so the best is to
>>>>>> modify the geometry file. How do you generate the geometry?
>>>>>> For example, if you use rtksimulated geometry, let's say that you
>>>>>> were using:
>>>>>> rtksimulatedgeometry -n 200 -a 200 -o g.xml
>>>>>> then you'll have to replace it with
>>>>>> rtksimulatedgeometry -n 202 -a 202 -o g.xml -f -1
>>>>>> Don't forget to add dummy projection at the beginning and the end. If
>>>>>> you use a more complex geometry, maybe SimpleRTK
>>>>>> <http://wiki.openrtk.org/index.php?title=SimpleRTK> can be helpful
>>>>>> (I'd use that) or you'd have to modify the cxx code to add these additional
>>>>>> projections in the geometry and the projection stack.
>>>>>> Simon
>>>>>>
>>>>>>
>>>>>> On Tue, Dec 8, 2015 at 8:51 AM, Shiras Abdurahman <
>>>>>> <shiraska at gmail.com>shiraska at gmail.com> wrote:
>>>>>>
>>>>>>> Dear Simon,
>>>>>>>
>>>>>>> Thanks a lot for the reply. Can you please inform me how can I set
>>>>>>> where the arc starts?
>>>>>>> Do I need to modify geometry also?
>>>>>>> If you can point the line of code rtkfdk.cxx, it will be really
>>>>>>> helpful.
>>>>>>>
>>>>>>> With regards,
>>>>>>> Shiras
>>>>>>>
>>>>>>> On Tue, Dec 8, 2015 at 7:56 AM, Simon Rit <
>>>>>>> <simon.rit at creatis.insa-lyon.fr>simon.rit at creatis.insa-lyon.fr>
>>>>>>> wrote:
>>>>>>>
>>>>>>>> Dear Shiras,
>>>>>>>> Yes, for practical reasons the first and the last projections are
>>>>>>>> set to 0 and the arc used in the Parker weighting starts between the first
>>>>>>>> two projections and ends between the lasts two projections. There is a
>>>>>>>> simple solution: add a projection at the beginning and the end of the arc,
>>>>>>>> which can contain any pixel values but should be set where you want this
>>>>>>>> arc to start. In the future, I think someone should once take the time to
>>>>>>>> correct this but I haven't so far. I'll keep you posted on the mailing list
>>>>>>>> when it's corrected.
>>>>>>>> Simon
>>>>>>>>
>>>>>>>> On 07/12/2015 12:04, Shiras Abdurahman wrote:
>>>>>>>>
>>>>>>>> Hi all,
>>>>>>>>
>>>>>>>> I am trying to reconstruct a volume from projection data generated
>>>>>>>> with C-arm CT. There are 248 projections with an angular range of 199
>>>>>>>> degree. Technically, parker weighting should run without any problems.
>>>>>>>> However, I am getting an output message that "You do not have enough data
>>>>>>>> for proper parker weighting". After parker weighting, the two extreme
>>>>>>>> projections (projection number 1 and 248) were completely zero and thus
>>>>>>>> reconstructed volume contained artifacts. When I increased the angular
>>>>>>>> range, this problem did not happen. How can I solve this problem without
>>>>>>>> increasing angular range? Is there any threshold constant that I can change
>>>>>>>> in command line  or in my code?
>>>>>>>>
>>>>>>>> I really appreciate any help you can provide.
>>>>>>>>
>>>>>>>> With regards,
>>>>>>>> Shiras
>>>>>>>>
>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> Rtk-users mailing listRtk-users at public.kitware.comhttp://public.kitware.com/mailman/listinfo/rtk-users
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>
>
>
> _______________________________________________
> 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/20160302/34d6f3df/attachment.htm>


More information about the Rtk-users mailing list