Open ashgillman opened 6 years ago
Strange. Your NAC file name says SIRF
but you state STIR
. Which are you using?
SIRF sorry
Perhaps because the resampled origin is set to be the same as the input origin? Usually, our radiographers will play around with the acquisition FOV, I'd have thought the resampled origin would not depend on the input.
https://github.com/UCL/petmr-rd-tools/blob/master/lib/nmtools/MRAC.hpp#L692
I'm also getting
E0718 23:21:20.582680 5732 MRAC.hpp:683] Input x or y size is odd. Unsure how to resample!
E0718 23:21:20.582690 5732 NMmrac2mu.cpp:143] Failed to scale image
Which is an error I inserted, since I had made some assumptions about how the output size calculation should go. But is there a reason that the output shape isn't just set to 344*344*127?
Although note this is probably unrelated, but potentially the same solution
If I could add a third unrelated "problem" with potentially the same solution:
When I also run mrac2mu on the vendor reconstruction, it has a different size in the z axis
I put quotes around "problem" because I think that STIR/SIRF can handle this (offset in z). But, still if you are using the --head
option I might think you'd expect to always get 344x344x127?
The solution I am hinting at is that perhaps the output size should be taken from the JSON specification in the beginning. As an added bonus, you could potentially in the future extend this so that you could supply a JSON file input with resampling parameters (I assume this was the original intent).
Your assumption about the JSON is correct, I just haven't got round to it. (More than happy to accept a PR...)
Yes, I would expect to get 344x344x127 with --head
, but I didn't really think about resampling other images. If you are rescaling is failing because x and or y are not even, then this means that your input image is not 192^3? If so, then the code as it stands will fall over.
What do you mean when you say radiographer's play with the FOV, do you mean the MR acquisition or they retro recon. the PET with a zoom and/or offset?
My input is 192x192x128. As I said, I think that STIR/SIRF handle z offsets, so long as the z resolution is acceptable (half the ring spacing?), so it /has/ worked for me (just not this time).
I mean the MR acquisition, so it is not necessarily centered transaxially.
So if the output transform is constant (identity) and the output size and spacing are parameters, that leaves the origin and the direction to be calculated.
Origin
I guess the image should lie in the center, such that outputOrigin[0] = outputSize[0] * outputShape[0] // 2
and likewise for the y-axis. I am not sure for the z-axis though...
Direction
Currently this is taken from the input, but I think maybe it should actually also be a constant? Again, I am not sure which. The default doesn't work for me currently, so I have to use --orient RAS
. My DICOM direction is
(0020,0037) DS [1\0\0\0\0\-1] # 12,6 Image Orientation (Patient)
I am happy to make some changes, test and make a PR. The main issue at the moment though is that z-origin.
Does this sound correct to you?
Origin, yes, but I feel like the direction should come from the input. I deliberately chose RAI as the default because I believe this is what Siemens appear to uses in e7 tools. The reason for this is that (assuming everything goes fine) the output volume of nm_mrac2mu
without any switches should be almost identical to the raw mu-map volume from e7 tools.
Hi,
I have run a STIR non-attenuation corrected reconstruction on my data, and compared the output with
nm_mrac2mu
's umap output. It is misaligned in the y direction. Any suggestions/speculations as to what might be causing this?Cheers, Ash
NB: If you click the images they will open in a new tab and you can cycle. Look between the UTE and the NAC, since they are a similar scale the silly
colorbar
won't make the image move.