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 <[email protected]> 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 <[email protected]>: > >> 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 <[email protected]>: >> >>> 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 < >>> [email protected]> 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 < >>>> <[email protected]>[email protected]> 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 < >>>>> <[email protected]>[email protected]> 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 < >>>>>> <[email protected]>[email protected]> 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 < >>>>>>> <[email protected]>[email protected]> >>>>>>> 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 < >>>>>>>> <[email protected]>[email protected]> 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 < >>>>>>>>> <[email protected]>[email protected]> >>>>>>>>> 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 >>>>>>>>>> [email protected]http://public.kitware.com/mailman/listinfo/rtk-users >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>> >>>>>> >>>>> >>>> >>> >>> >>> _______________________________________________ >>> Rtk-users mailing list >>> [email protected] >>> http://public.kitware.com/mailman/listinfo/rtk-users >>> >>> >> >
_______________________________________________ Rtk-users mailing list [email protected] http://public.kitware.com/mailman/listinfo/rtk-users
