-
Notifications
You must be signed in to change notification settings - Fork 29
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[FIX] Constructing STIR Image from Acq Data with nx, ny should use Acq data #231
base: master
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
tiny change.
@evgueni-ovtchinnikov, after @ashgillman fixes this, can you squash-merge?
Co-Authored-By: ashgillman <[email protected]>
Sure, but I'm not sure where this goes? There seems to by doxygen only for the class not the methods/constructors? |
The build fails seem to be perhaps some network error? Or misconfiguration? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Might be good to have defaultsny=nx
,nx=-1`
Travis failures are due to SyneRBI/SIRF-SuperBuild#119, which needs @casperdcl but he's travelling. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
sorry cannot see where you set new voxel sizes
@rijobro, is this PR still relevant? @ashgillman can you merge master into here to resolve conflicts. we should then finish it off. The proposed change is much shorter/clearer than the original. However...
There is a difference between these 2 versions I believe. I think @evgueni-ovtchinnikov preserved FOV size, while @ashgillman preserves voxel-size. Both make sense, but are in a way not sufficient as you want to be able to choose any number of voxels and voxel size. STIR uses
where the default max_diameter is obtained from the D=max(proj_data.get_s_in_mm(acq_data.get_max_tang_pos_num()),
- proj_data.get_s_in_mm(acq_data.get_min_tang_pos_num()))*2 Then it'll be a bit of fun to find the correct STIR zoom. Maybe xy_vox_size= D/std::max(nx,ny);
zoom=proj_data.get_proj_data_info_sptr()->get_scanner_sptr()->get_default_bin_size()/xy_vox_size; Do we have a c++ data-type to store the |
hi, can we progress this one please? |
I've merged and updated the doc. Re: Evguenni's Q - STIR's VoxelsOnCartesianGrid likes to determine the voxel sizes, as Kris mentions. I'm not sure on the best way forward, depending on how much control one would want over this. |
I think people will want to change the FOV diameter. Example: if you're doing brain, there's no point reconstructing lots of zero voxels of course. @evgueni-ovtchinnikov 's way to scale voxel-size seems more intuitive than STIR's. So, I still think that my suggestion is ok. On the C++ side I guess we'd need ImageData(const PETAcquisitionData& acq_data,
const std::pair<int>num_voxels_xy=std::make_pair(-1,-1),
const float max_diameter_in_mm=-1) Relevant code in STIR as around here. It'd obviously be better to avoid having this stuff in SIRF, but that'd need a similar constructor in STIR, which needs a bit more thought. |
@ashgillman any chance we can finalise this before v2.0? |
I didn't quite understand the first time - I thought you meant make changes into STIR to suit. But if I understand you mean just work around STIR convention? I had a quick look a few weeks ago but have lost track, I'll have a look again this week. |
As STIR now supports different x,y,z zooms, |
Previously, if nx, ny was specified, then the resulting VoxelsOnCartGrid didn't actually use the constructor with AcqData