I am trying to register two volumetric images from brain (PET and CT or even PET and MR). Each of these volumetric images contains different numbers of 2D images (slices).
For example, CT
has 150
slices and PET
has 100
slices. I was thinking of using an interpolation method to calculate and reduce the number of CT slices to 100. Is this a correct approach? Does anyone know of any resources that could be helpful for me? like a pseudo code, or steps that I should go through for registering two volumetric images.
Thank you :)
相关问题
- How to get the background from multiple images by
- Extract matrix elements using a vector of column i
- Is GLFW designed to use without LWJGL (in java)?
- Try to load image with Highgui.imread (OpenCV + An
- CV2 Image Error: error: (-215:Assertion failed) !s
相关文章
- Algorithm for partially filling a polygonal mesh
- Robust polygon normal calculation
- How do I append metadata to an image in Matlab?
- Keep constant number of visible circles in 3D anim
- How can I write-protect the Matlab language?
- `std::sin` is wrong in the last bit
- How do I remove axis from a rotation matrix?
- Python open jp2 medical images - Scipy, glymur
If you know the spacing information for the 150 CT slices and the 100 PET slices, you can look into MATLAB's
interp1
function for interpolating along one axis to rescale the images to the same number of pixels. From here it might be possible to use MATLAB'simregister
to perform registration.If you are looking to learn how registration works under the hood (transforming between pixel and physical coordinates, transforming/resampling images, etc.), one resource I can direct you to is the ITK Software Guide pdf.
In particular, try reading Book 1 Section 4.1.4 (page 41 of the pdf) on image representation, and Book 2 Section 3.9 (page 532 of the pdf) on transforms.
In general, the problem of transforming and interpolating with 3D images in registration can be pretty cumbersome to write code for. You need to ask yourself about the spacing and orientation of pixels, how to transform and interpolate images so that their grids overlap, and you also need to decide what to do with pixels in your grid that lie outside the image boundary when evaluating the similarity metric.
While it's up to you to do what you think is best, I suggest you use existing registration programs if they are capable of doing what you want:
imregister
(I have never used it so I can't comment on it)