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
