37 #include <vtkImageData.h> 38 #include <vtkMetaImageReader.h> 39 #include <vtkSmartPointer.h> 40 #include <vtkMetaImageWriter.h> 42 #include <vtkPolyData.h> 43 #include <vtkPolyDataReader.h> 44 #include <vtkXMLPolyDataReader.h> 45 #include <vtkPolyDataWriter.h> 46 #include <vtkSTLReader.h> 47 #include <vtkImageChangeInformation.h> 48 #include "vtkMINCImageReader.h" 49 #include "vtkTransform.h" 50 #include "vtkCommand.h" 51 #include <vtkPNGReader.h> 52 #include <vtkNIFTIImageReader.h> 53 #include <vtkNIFTIImageHeader.h> 56 #include <QDomDocument> 59 #include <QTextStream> 86 reader->ReleaseDataFlagOn();
92 zeroer->SetInputConnection(reader->GetOutputPort());
93 zeroer->SetOutputOrigin(0, 0, 0);
95 return zeroer->GetOutput();
100 return this->
readInto(boost::dynamic_pointer_cast<Image>(data), filename);
115 image->setVtkImageData(raw);
116 image->get_rMd_History()->setRegistration(rMd);
117 image->setModality(customReader->readModality());
118 image->setImageType(customReader->readImageType());
122 double level = customReader->readKey(
"WindowLevel").toDouble(&ok1);
123 double window = customReader->readKey(
"WindowWidth").toDouble(&ok2);
127 image->setInitialWindowLevel(window, level);
128 image->resetTransferFunctions();
145 writer->SetInputData(image->getBaseVtkImageData());
146 writer->SetFileDimensionality(3);
148 QDir().mkpath(QFileInfo(filename).path());
152 writer->SetCompression(
false);
159 customReader->setTransform(image->get_rMd());
160 customReader->setModality(image->getModality());
161 customReader->setImageType(image->getImageType());
162 customReader->setKey(
"WindowLevel",
qstring_cast(image->getInitialWindowLevel()));
163 customReader->setKey(
"WindowWidth",
qstring_cast(image->getInitialWindowWidth()));
164 customReader->setKey(
"Creator", QString(
"CustusX_%1").arg(CustusX_VERSION_STRING));
174 sform_matrix = vtkMatrix4x4Ptr::New();
187 image->setVtkImageData(raw);
188 image->get_rMd_History()->setRegistration(rMd);
195 return this->
readInto(boost::dynamic_pointer_cast<Image>(data), filename);
209 reader->ReleaseDataFlagOn();
223 sform_matrix = reader->GetSFormMatrix();
228 return reader->GetOutput();
238 return this->
readInto(boost::dynamic_pointer_cast<Image>(data), filename);
248 image->setVtkImageData(raw);
262 pngReader->SetFileName(filename.toStdString().c_str());
264 return pngReader->GetOutput();
273 return this->
readInto(boost::dynamic_pointer_cast<Mesh>(data), filename);
283 mesh->setVtkPolyData(raw);
313 return this->
readInto(boost::dynamic_pointer_cast<Mesh>(data), filename);
323 mesh->setVtkPolyData(raw);
353 return this->
readInto(boost::dynamic_pointer_cast<Mesh>(data), filename);
363 mesh->setVtkPolyData(raw);
402 DataReaderPtr DataReaderWriter::findReader(
const QString& path,
const QString& type)
404 for (DataReadersType::iterator iter = mDataReaders.begin(); iter != mDataReaders.end(); ++iter)
406 if ((*iter)->canLoad(type, path))
416 return reader->loadVtkImageData(filename);
424 return reader->loadVtkPolyData(filename);
432 return reader->canLoadDataType();
438 DataReaderPtr reader = this->findReader(path, data->getType());
440 reader->readInto(data, path);
446 data->setFilename(path);
QString qstring_cast(const T &val)
virtual vtkPolyDataPtr loadVtkPolyData(QString filename)
QString findDataTypeFromFile(QString filename)
virtual DataPtr load(const QString &uid, const QString &filename)
virtual bool readInto(DataPtr data, QString path)
virtual bool readInto(DataPtr data, QString path)
Transform3D Transform3D
Transform3D is a representation of an affine 3D transform.
virtual vtkPolyDataPtr loadVtkPolyData(QString filename)
boost::shared_ptr< class Image > ImagePtr
vtkSmartPointer< vtkImageChangeInformation > vtkImageChangeInformationPtr
vtkSmartPointer< class vtkXMLPolyDataReader > vtkXMLPolyDataReaderPtr
cstring_cast_Placeholder cstring_cast(const T &val)
virtual DataPtr load(const QString &uid, const QString &filename)
boost::shared_ptr< DataReader > DataReaderPtr
vtkPolyDataPtr loadVtkPolyData(QString filename)
boost::shared_ptr< class Data > DataPtr
virtual DataPtr load(const QString &uid, const QString &filename)
vtkSmartPointer< class vtkMetaImageReader > vtkMetaImageReaderPtr
boost::shared_ptr< class CustomMetaImage > CustomMetaImagePtr
virtual bool readInto(DataPtr data, QString path)
vtkSmartPointer< class vtkSTLReader > vtkSTLReaderPtr
virtual vtkPolyDataPtr loadVtkPolyData(QString filename)
vtkSmartPointer< class vtkPNGReader > vtkPNGReaderPtr
vtkSmartPointer< class vtkMetaImageWriter > vtkMetaImageWriterPtr
vtkSmartPointer< class vtkNIFTIImageReader > vtkNIFTIImageReaderPtr
virtual bool readInto(DataPtr data, QString path)
vtkSmartPointer< vtkPolyData > vtkPolyDataPtr
virtual DataPtr load(const QString &uid, const QString &filename)
virtual vtkImageDataPtr loadVtkImageData(QString filename)
QString changeExtension(QString name, QString ext)
void readInto(DataPtr data, QString path)
virtual vtkImageDataPtr loadVtkImageData(QString filename)
static bool checkedRead(vtkSmartPointer< vtkAlgorithm > reader, QString filename)
Reader for portable network graphics .png files.
vtkSmartPointer< class vtkPolyDataReader > vtkPolyDataReaderPtr
virtual bool readInto(DataPtr data, QString path)
boost::shared_ptr< class Mesh > MeshPtr
vtkImageDataPtr loadVtkImageData(QString filename)
virtual vtkPolyDataPtr loadVtkPolyData(QString filename)
Interface for Data file readers.
Namespace for all CustusX production code.
virtual DataPtr load(const QString &uid, const QString &filename)