[Rtk-users] Parker weighting
Simon Rit
simon.rit at creatis.insa-lyon.fr
Fri Mar 11 12:24:32 EST 2016
Dear Chao,
Sorry, I started working on your pertinent remarks (as always) but I did
not finish accounting for the changes yet.
Thanks for the bug report, I agree and changed it immediately, as you
noticed.
For Parker, I'm not sure why I did this but this is indeed wrong. Maybe I
did not realize that the whole projection would be 0? Anyway, I fixed it
but there are still 2 projections wrongly set to 0, we could also make use
of them. I'll keep you posted when I have a solution, this is where it's a
bit trickier...
Thanks again,
Simon
On Fri, Mar 11, 2016 at 12:29 PM, Chao Wu <wuchao04 at gmail.com> wrote:
> Hoi,
>
> I saw the factor 0.5 has been removed. Is there any concern about the
> second part of the question? Why to discard the first and last projections?
> Thanks.
>
> Regards,
> Chao
>
> 2016-03-02 12:59 GMT+01:00 Chao Wu <wuchao04 at gmail.com>:
>
>> 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://public.kitware.com/pipermail/rtk-users/attachments/20160311/aede2c25/attachment-0010.html>
More information about the Rtk-users
mailing list