v2.0.0
Loading...
Searching...
No Matches
mri_slicer.h
Go to the documentation of this file.
1//=============================================================================================================
34
35#ifndef MRI_SLICER_H
36#define MRI_SLICER_H
37
38//=============================================================================================================
39// INCLUDES
40//=============================================================================================================
41
42#include "mri_global.h"
43
44//=============================================================================================================
45// QT INCLUDES
46//=============================================================================================================
47
48#include <QVector>
49
50//=============================================================================================================
51// EIGEN INCLUDES
52//=============================================================================================================
53
54#include <Eigen/Core>
55
56//=============================================================================================================
57// DEFINE NAMESPACE MRILIB
58//=============================================================================================================
59
60namespace MRILIB {
61
62//=============================================================================================================
63// FORWARD DECLARATIONS
64//=============================================================================================================
65
66class MriVolData;
67
68//=============================================================================================================
73
74//=============================================================================================================
89
90//=============================================================================================================
100{
101public:
102 //=========================================================================================================
115 const QVector<float>& volData,
116 const QVector<int>& dims,
117 const Eigen::Matrix4f& vox2ras,
118 SliceOrientation orientation,
119 int sliceIndex);
120
121 //=========================================================================================================
132 static QVector<MriSliceImage> extractOrthogonal(
133 const QVector<float>& volData,
134 const QVector<int>& dims,
135 const Eigen::Matrix4f& vox2ras,
136 const Eigen::Vector3f& rasPoint);
137
138 //=========================================================================================================
147 static Eigen::Vector3i rasToVoxel(const Eigen::Matrix4f& vox2ras,
148 const Eigen::Vector3f& rasPoint);
149
150 //=========================================================================================================
159 static Eigen::Vector3f voxelToRas(const Eigen::Matrix4f& vox2ras,
160 const Eigen::Vector3i& voxel);
161
162 //=========================================================================================================
163 // MriVolData convenience overloads
164 //=========================================================================================================
165
175 static MriSliceImage extractSlice(const MriVolData& vol,
176 SliceOrientation orientation,
177 int sliceIndex);
178
187 static QVector<MriSliceImage> extractOrthogonal(const MriVolData& vol,
188 const Eigen::Vector3f& rasPoint);
189
198 static Eigen::Vector3i rasToVoxel(const MriVolData& vol,
199 const Eigen::Vector3f& rasPoint);
200
209 static Eigen::Vector3f voxelToRas(const MriVolData& vol,
210 const Eigen::Vector3i& voxel);
211};
212
213} // namespace MRILIB
214
215#endif // MRI_SLICER_H
MRI library export/import macros.
#define MRISHARED_EXPORT
Definition mri_global.h:50
MRI volume and coordinate-system I/O (volumes, voxel geometry, transforms).
SliceOrientation
Definition mri_slicer.h:72
Extracted MRI slice image.
Definition mri_slicer.h:81
Eigen::Matrix4f sliceToRas
Definition mri_slicer.h:87
SliceOrientation orientation
Definition mri_slicer.h:85
Eigen::MatrixXf pixels
Definition mri_slicer.h:82
MRI volume slicer.
Definition mri_slicer.h:100
static Eigen::Vector3f voxelToRas(const Eigen::Matrix4f &vox2ras, const Eigen::Vector3i &voxel)
static Eigen::Vector3f voxelToRas(const MriVolData &vol, const Eigen::Vector3i &voxel)
static MriSliceImage extractSlice(const QVector< float > &volData, const QVector< int > &dims, const Eigen::Matrix4f &vox2ras, SliceOrientation orientation, int sliceIndex)
static QVector< MriSliceImage > extractOrthogonal(const MriVolData &vol, const Eigen::Vector3f &rasPoint)
static Eigen::Vector3i rasToVoxel(const Eigen::Matrix4f &vox2ras, const Eigen::Vector3f &rasPoint)
static Eigen::Vector3i rasToVoxel(const MriVolData &vol, const Eigen::Vector3f &rasPoint)
static QVector< MriSliceImage > extractOrthogonal(const QVector< float > &volData, const QVector< int > &dims, const Eigen::Matrix4f &vox2ras, const Eigen::Vector3f &rasPoint)
MRI volume data from FreeSurfer MGH/MGZ file.