X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=src%2FcreaImageIOUltrasonixImageReader.cpp;h=8c609d356f6cdef917ff833a0a6360a8a0d59ea7;hb=7a7557d18e0cd9551a5d0abc3de53e811f11f76e;hp=8eb476bbb8605bbaea8eb3a75cc396a1e351a06b;hpb=3a22e19184c369b130d4caa992a8e98e50c7a0ee;p=creaImageIO.git diff --git a/src/creaImageIOUltrasonixImageReader.cpp b/src/creaImageIOUltrasonixImageReader.cpp index 8eb476b..8c609d3 100644 --- a/src/creaImageIOUltrasonixImageReader.cpp +++ b/src/creaImageIOUltrasonixImageReader.cpp @@ -1,8 +1,40 @@ +/* +# --------------------------------------------------------------------- +# +# Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image +# pour la Santé) +# Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton +# Previous Authors : Laurent Guigues, Jean-Pierre Roux +# CreaTools website : www.creatis.insa-lyon.fr/site/fr/creatools_accueil +# +# This software is governed by the CeCILL-B license under French law and +# abiding by the rules of distribution of free software. You can use, +# modify and/ or redistribute the software under the terms of the CeCILL-B +# license as circulated by CEA, CNRS and INRIA at the following URL +# http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html +# or in the file LICENSE.txt. +# +# As a counterpart to the access to the source code and rights to copy, +# modify and redistribute granted by the license, users are provided only +# with a limited warranty and the software's author, the holder of the +# economic rights, and the successive licensors have only limited +# liability. +# +# The fact that you are presently reading this means that you have had +# knowledge of the CeCILL-B license and that you accept its terms. +# ------------------------------------------------------------------------ +*/ + #include "creaImageIOSystem.h" #include "creaImageIOUltrasonixImageReader.h" #include #include + +#if defined(_WIN32) +#pragma warning(disable: 4996) +#endif + namespace creaImageIO { #define HEADER_SIZE 19 @@ -41,10 +73,10 @@ namespace creaImageIO fread(header, sizeof(int), HEADER_SIZE, Ultrasonix_file); if (ferror(Ultrasonix_file)) return false; - h.type = header[0]; - h.frame = header[1]; - h.height = header[2]; - h.width = header[3]; + h.type = header[1]; + h.frame = header[2]; + h.height = header[3]; + h.width = header[4]; h.frequency = header[14]; h.samplingRate = header[15]; //free(header); @@ -55,7 +87,7 @@ namespace creaImageIO //===================================================================== bool UltrasonixImageReader::CanRead(const std::string& filename) { - long size; + long size = -1; bool ok = false; FILE *Ultrasonix_file=fopen(filename.c_str(), "rb"); if (Ultrasonix_file) @@ -71,20 +103,25 @@ namespace creaImageIO fseek(Ultrasonix_file,0,SEEK_END); // go to end of file if (h.type == TYPE_RF) size = (ftell(Ultrasonix_file) - (HEADER_SIZE+h.frame) * sizeof(int)) / sizeof(short); - else if (h.type == TYPE_B8) - size = (ftell(Ultrasonix_file) - HEADER_SIZE * sizeof(int)) / sizeof(char); + else if (h.type == 1)//TYPE_B8) + size = (ftell(Ultrasonix_file) - (HEADER_SIZE+h.frame+4) * sizeof(int)) / sizeof(char); else if (h.type == TYPE_B32) size = (ftell(Ultrasonix_file) - HEADER_SIZE * sizeof(int)) / sizeof(int); // check if the data size corresponds to the dimensions of the images - if (size == h.width * h.height * h.frame) + if (size == h.width * h.height * h.frame ) ok = true; - + fclose(Ultrasonix_file); } return ok; } //===================================================================== + void UltrasonixImageReader::getAttributes(const std::string filename, + std::map &infos, std::vector i_attr) + { + //TO DO + } //===================================================================== vtkImageData* UltrasonixImageReader::ReadImage(const std::string& filename) @@ -229,7 +266,7 @@ namespace creaImageIO if ( (i = attr.find("D0004_1500")) != attr.end()) { boost::filesystem::path full_path(filename); - std::string f = full_path.leaf(); + std::string f = full_path.leaf().string(); i->second = f; } if ( (i = attr.find("D0028_0010")) != attr.end())