Jump to content
Main menu
Main menu
move to sidebar
hide
Navigation
Main page
Recent changes
Random page
Help about MediaWiki
STIR
Search
Search
Create account
Log in
Personal tools
Create account
Log in
Pages for logged out editors
learn more
Contributions
Talk
Editing
STIR FAQ
(section)
Page
Discussion
English
Read
Edit
View history
Tools
Tools
move to sidebar
hide
Actions
Read
Edit
View history
General
What links here
Related changes
Special pages
Page information
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
= Other questions = == what about arc-correction?== (see the glossary for what this is. GE tends to use "geometric correction" for the same concept) STIR gets info about the arc-correction from the data. For instance, for Interfile you could see <pre> applied corrections:={arc correction} </pre> STIR reconstruction algorithms will automatically handle this for you, or tell you that they cannot. For instance, FBP (2D and 3D) will arc-correct first if still necessary. The iterative algorithms will not precorrect the data, but it is up to the projectors to adjust. However, the (default) incremental interpolating backprojector cannot handle non-arccorrected data. It will say something like <pre> ERROR: BackProjectorByBinUsingInterpolation: can only handle arc-corrected data (cast to ProjDataInfoCylindricalArcCorr)! </pre> Change the projector. == How do I add my own scanner to STIR? == You might not need to. If you specify the scanner geometry in your Interfile header, STIR will handle it ok. For instance, you could use create_projdata_template, pick a scanner that might be somewhat similar to yours, and then edit the generated Interfile header. The scanner part of the header takes the same information as Scanner:set_params() (take care of changes between mm and cm). Obviously, it contains more information such as the actual number of views, ring differences etc that is supposed to be in your data. (Check the STIR Glossary as well for some info). Once you have this template, you should be good to go. Alternatively, you will have to modify the <code>Scanner</code> class. Marc Chamberland gave a [https://sourceforge.net/mailarchive/message.php?msg_id=28744302 good explanation of this on the stir-users list]. Note that STIR (at least 2.2 and earlier) ignores view_offset and block information. == How to properly initialise <code>std::shared_ptr<T>()</code> with <code>std::unique_ptr<T>()</code>? == This answer refers to current and future STIR developers. Discussion on this issue was conducted on the [https://github.com/UCL/STIR/pull/108 listmode reconstruction branch at github]. For compilers that use CXX11 STIR uses <code>std::unique_ptr<T></code>, while if CXX11 is not used then <code>std::auto_ptr<T></code> is used, in which case the constructor <code>std::shared_ptr(auto_ptr<T>& ap);</code> works fine. Allowing us to write something like: <pre> this->set_proj_data_info_sptr(ProjDataInfo::construct_proj_data_info(...)); </pre> But for <code>std::unique_ptr<T></code> the case of <code>std::shared_ptr(unique_ptr<T>&& ap);</code>, which would allow us to use a similar constructor, is not allowed. The call of <code>std::move()</code> or <code>release()</code> would be mandatory. Therefore the solution that we decided to implement was: <pre> shared_ptr<T> s(construct_..()); set_proj_data_info_sptr(s); </pre> This is compatible with both pre-CXX11 and CXX11 compilers.
Summary:
Please note that all contributions to STIR may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
STIR:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Toggle limited content width