diff --git a/src/common/DICOMExporter.cpp b/src/common/DICOMExporter.cpp index 0ef2013..8b4d706 100644 --- a/src/common/DICOMExporter.cpp +++ b/src/common/DICOMExporter.cpp @@ -70,6 +70,8 @@ namespace { { switch (aType) { + case Recon::DICOMExporter::SOS: + case Recon::DICOMExporter::ATT: case Recon::DICOMExporter::REFL: case Recon::DICOMExporter::CoronalPositioning: return Aurora::transpose(flipHorizontal(aImage)); @@ -344,7 +346,7 @@ namespace Recon RECON_INFO("Save DICOM to Path:{0}, type:{1}==================>",path,(int)type); } - void DICOMExporter::exportDICOM(Aurora::Matrix aMatrix, const Aurora::Matrix& aOriginMatrix, ImageType type) + void DICOMExporter::exportPositioningDICOM(Aurora::Matrix aMatrix, const Aurora::Matrix& aOriginMatrix, ImageType type) { int XYZ [3] = {aMatrix.getDimSize(0),aMatrix.getDimSize(1), aMatrix.getDimSize(2)}; int originXYZ[3] = {aOriginMatrix.getDimSize(0),aOriginMatrix.getDimSize(1), aOriginMatrix.getDimSize(2)}; diff --git a/src/common/DICOMExporter.h b/src/common/DICOMExporter.h index ae74470..b968e9e 100644 --- a/src/common/DICOMExporter.h +++ b/src/common/DICOMExporter.h @@ -34,7 +34,7 @@ public: ~DICOMExporter(); void setExportBasePath(const std::string & path); void exportDICOM(Aurora::Matrix aMatrix, ImageType type); - void exportDICOM(Aurora::Matrix aMatrix, const Aurora::Matrix& aOriginMatrix, ImageType type); + void exportPositioningDICOM(Aurora::Matrix aMatrix, const Aurora::Matrix& aOriginMatrix, ImageType type); private: std::string mBasePath; diff --git a/src/common/createPositioningImage.cpp b/src/common/createPositioningImage.cpp new file mode 100644 index 0000000..d0c17b5 --- /dev/null +++ b/src/common/createPositioningImage.cpp @@ -0,0 +1,79 @@ +#include "createPositioningImage.h" + +using namespace Recon; + +Aurora::Matrix Recon::createCoronalPlaneImage(const Aurora::Matrix& a3DImage) +{ + if(a3DImage.isNull()) + { + return Aurora::Matrix(); + } + int row = a3DImage.getDimSize(0); + int column = a3DImage.getDimSize(1); + int resultSize = row * column; + int slice = a3DImage.getDimSize(2); + Aurora::Matrix result = a3DImage.block(2,0,0); + for(int i=1; i