Concrete image reader for ultrasonix 'rf' files. More...
#include <creaImageIOUltrasonixImageReader.h>


Public Member Functions | |
| UltrasonixImageReader () | |
| virtual | ~UltrasonixImageReader () |
| virtual void | PushBackExtensions (std::vector< std::string > &) |
| Add file extensions read by the reader. | |
| virtual bool | CanRead (const std::string &filename) |
| Test if file is read by this reader. | |
| virtual vtkImageData * | ReadImage (const std::string &filename) |
| return for a file a 2D VTkImage | |
| virtual void | ReadAttributes (const std::string &filename, tree::AttributeMapType &attr) |
| Read the attributes for a file. | |
| virtual void | getAttributes (const std::string filename, std::map< std::string, std::string > &infos, std::vector< std::string > i_attr) |
| Another function to read attributes for a file. | |
| const std::string & | GetName () const |
| Get the reader's name. | |
Protected Member Functions | |
| void | SetName (const std::string &s) |
| Set the reader's name. | |
Concrete image reader for ultrasonix 'rf' files.
Definition at line 15 of file creaImageIOUltrasonixImageReader.h.
| creaImageIO::UltrasonixImageReader::UltrasonixImageReader | ( | ) |
Definition at line 12 of file creaImageIOUltrasonixImageReader.cpp.
References creaImageIO::AbstractImageReader::SetName().
{

| creaImageIO::UltrasonixImageReader::~UltrasonixImageReader | ( | ) | [virtual] |
Definition at line 19 of file creaImageIOUltrasonixImageReader.cpp.
| bool creaImageIO::UltrasonixImageReader::CanRead | ( | const std::string & | filename | ) | [virtual] |
Test if file is read by this reader.
Reimplemented from creaImageIO::AbstractImageReader.
Definition at line 53 of file creaImageIOUltrasonixImageReader.cpp.
References creaImageIO::Ultrasonix_header::frame, HEADER_SIZE, creaImageIO::Ultrasonix_header::height, creaImageIO::ReadHeader(), creaImageIO::Ultrasonix_header::type, TYPE_B32, TYPE_RF, and creaImageIO::Ultrasonix_header::width.
{
long size = -1;
bool ok = false;
FILE *Ultrasonix_file=fopen(filename.c_str(), "rb");
if (Ultrasonix_file)
{
Ultrasonix_header h;
if (!ReadHeader(Ultrasonix_file, h) )
{
fclose(Ultrasonix_file);
std::cout << "cannot read Ultrasonix header for file [" << filename << "]" << std::endl;
return false;
}
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 == 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 )
ok = true;
fclose(Ultrasonix_file);

| void creaImageIO::UltrasonixImageReader::getAttributes | ( | const std::string | filename, | |
| std::map< std::string, std::string > & | infos, | |||
| std::vector< std::string > | i_attr | |||
| ) | [virtual] |
Another function to read attributes for a file.
Reimplemented from creaImageIO::AbstractImageReader.
Definition at line 85 of file creaImageIOUltrasonixImageReader.cpp.
{
| const std::string& creaImageIO::AbstractImageReader::GetName | ( | ) | const [inline, inherited] |
Get the reader's name.
Definition at line 16 of file creaImageIOAbstractImageReader.h.
Referenced by creaImageIO::VtkImageReader::VtkImageReader().
{

| void creaImageIO::UltrasonixImageReader::PushBackExtensions | ( | std::vector< std::string > & | v | ) | [virtual] |
Add file extensions read by the reader.
Reimplemented from creaImageIO::AbstractImageReader.
Definition at line 178 of file creaImageIOUltrasonixImageReader.cpp.
{
| virtual void creaImageIO::UltrasonixImageReader::ReadAttributes | ( | const std::string & | filename, | |
| tree::AttributeMapType & | attr | |||
| ) | [virtual] |
Read the attributes for a file.
Reimplemented from creaImageIO::AbstractImageReader.
| vtkImageData * creaImageIO::UltrasonixImageReader::ReadImage | ( | const std::string & | filename | ) | [virtual] |
return for a file a 2D VTkImage
Reimplemented from creaImageIO::AbstractImageReader.
Definition at line 92 of file creaImageIOUltrasonixImageReader.cpp.
{
FILE *Ultrasonix_file=fopen(filename.c_str(),"rb");
if (!Ultrasonix_file)
{
std::cout << "cannot open file [" << filename << "]" << std::endl;
return 0;
}
Ultrasonix_header h;
if (!ReadHeader(Ultrasonix_file,h))
{
std::cout << "cannot read Ultrasonix header for file [" << filename << "]" << std::endl;
fclose(Ultrasonix_file);
return 0;
}
long frame_size = h.height * h.width;
long im_size = frame_size * h.frame;
short *dataRF, *ptrRF;
char *dataB8, *ptrB8;
int *dataB32, *ptrB32;
vtkImageData* im;
int temp;
switch (h.type)
{
case TYPE_RF:
dataRF = (short*)malloc(sizeof(short)*im_size);
ptrRF = dataRF;
for (int k=0; k<h.frame; k++)
{
int frame_number;
fread(&frame_number, sizeof(int), 1, Ultrasonix_file);
fread(ptrRF,sizeof(short), frame_size, Ultrasonix_file);
ptrRF += frame_size;
}
fclose(Ultrasonix_file);
im = crea::NewVtkImageDataFromRaw( dataRF, h.width, h.height, h.frame);
break;
case TYPE_B8:
dataB8 = (char*)malloc(sizeof(char)*im_size);
ptrB8 = dataB8;
for (int k=0; k<h.frame; k++)
{
fread(ptrB8,sizeof(char), frame_size, Ultrasonix_file);
ptrB8 += frame_size;
}
// in mode b frames width and height are inverted
temp = h.width;
h.width = h.height;
h.height = temp;
fclose(Ultrasonix_file);
im = crea::NewVtkImageDataFromRaw( dataB8, h.width, h.height, h.frame);
break;
case TYPE_B32:
dataB32 = (int*)malloc(sizeof(int)*im_size);
ptrB32 = dataB32;
for (int k=0; k<h.frame; k++)
{
fread(ptrB32, sizeof(int), frame_size, Ultrasonix_file);
ptrB32 += frame_size;
}
// in B mode frames width and height are inverted
temp = h.width;
h.width = h.height;
h.height = temp;
fclose(Ultrasonix_file);
im = crea::NewVtkImageDataFromRaw( dataB32, h.width, h.height, h.frame);
break;
}
| void creaImageIO::AbstractImageReader::SetName | ( | const std::string & | s | ) | [inline, protected, inherited] |
Set the reader's name.
Definition at line 36 of file creaImageIOAbstractImageReader.h.
Referenced by creaImageIO::DicomImageReader::DicomImageReader(), UltrasonixImageReader(), and creaImageIO::VtkImageReader::VtkImageReader().

1.7.1