#include #include #include #include "boost/filesystem/path.hpp" namespace creaImageIO { #define HEADER_SIZE 19 //===================================================================== RFImageReader::RFImageReader() { SetName("rf"); } //===================================================================== //===================================================================== RFImageReader::~RFImageReader() { } //===================================================================== //===================================================================== struct rf_header { // frames, width, height int frame,width,height; }; //===================================================================== //===================================================================== bool ReadHeader( FILE *rf_file, rf_header& h ) { int *header=(int*)malloc(sizeof(int)*HEADER_SIZE); fread(header,sizeof(int),HEADER_SIZE,rf_file); h.frame = header[1]; h.height = header[2]; h.width = header[3]; free(header); return true; } //===================================================================== //===================================================================== bool RFImageReader::CanRead(const std::string& filename) { bool ok = false; FILE *rf_file=fopen(filename.c_str(),"rb"); if (rf_file) { rf_header h; ok = ReadHeader(rf_file,h); fclose(rf_file); } return ok; } //===================================================================== //===================================================================== vtkImageData* RFImageReader::ReadImage(const std::string& filename) { std::cout<<"RFImageReader reading "<& v) { v.push_back("rf"); } //===================================================================== //===================================================================== void RFImageReader::ReadAttributes(const std::string& filename, std::map& attr) { // std::cout << "RFImageReader::ReadDicomInfo '"<::iterator i; if ( (i = attr.find("FullFileName")) != attr.end()) { // boost::filesystem::path full_path(filename); // std::string f = full_path.leaf(); i->second = filename; } if ( (i = attr.find("D0004_1500")) != attr.end()) { boost::filesystem::path full_path(filename); std::string f = full_path.leaf(); i->second = f; } if ( (i = attr.find("D0028_0010")) != attr.end()) { i->second = rows; } if ( (i = attr.find("D0028_0011")) != attr.end()) { i->second = cols; } if ( (i = attr.find("D0028_0012")) != attr.end()) { i->second = planes; } GimmickMessage(2,"Attributes map:"<