StreamImageReader.
More...
#include <gdcmStreamImageReader.h>
StreamImageReader.
- Note
- its role is to convert the DICOM DataSet into a gdcm::Image representation via an ITK streaming (ie, multithreaded) interface Image is different from Pixmap has it has a position and a direction in Space. Currently, this class is thread safe in that it can read a single extent in a single thread. Multiple versions can be used for multiple extents/threads.
- See Also
- Image
- Examples:
- ExtractOneFrame.cs, and StreamImageReaderTest.cxx.
gdcm::StreamImageReader::StreamImageReader |
( |
| ) |
|
virtual gdcm::StreamImageReader::~StreamImageReader |
( |
| ) |
|
|
virtual |
bool gdcm::StreamImageReader::CanReadImage |
( |
| ) |
const |
Only RAW images are currently readable by the stream reader. As more streaming codecs are added, then this function will be updated to reflect those changes. Calling this function prior to reading will ensure that only streamable files are streamed. Make sure to call ReadImageInformation prior to calling this function.
- Examples:
- StreamImageReaderTest.cxx.
void gdcm::StreamImageReader::DefinePixelExtent |
( |
uint16_t |
inXMin, |
|
|
uint16_t |
inXMax, |
|
|
uint16_t |
inYMin, |
|
|
uint16_t |
inYMax, |
|
|
uint16_t |
inZMin = 0 , |
|
|
uint16_t |
inZMax = 1 |
|
) |
| |
Defines an image extent for the Read function. DICOM states that an image can have no more than 2^16 pixels per edge (as of 2009) In this case, the pixel extents ignore the direction cosines entirely, and assumes that the origin of the image is at location 0,0 (regardless of the definition in space per the tags). So, if the first 100 pixels of the first row are to be read in, this function should be called with DefinePixelExtent(0, 100, 0, 1), regardless of pixel size or orientation.
- Examples:
- StreamImageReaderTest.cxx.
uint32_t gdcm::StreamImageReader::DefineProperBufferLength |
( |
| ) |
const |
Paying attention to the pixel format and so forth, define the proper buffer length for the user. The return amount is in bytes. Call this function to determine the size of the char* buffer that will need to be passed in to ReadImageSubregion(). If the return is 0, then that means that the pixel extent was not defined prior
- Examples:
- StreamImageReaderTest.cxx.
std::vector<unsigned int> gdcm::StreamImageReader::GetDimensionsValueForResolution |
( |
unsigned |
int | ) |
|
File const& gdcm::StreamImageReader::GetFile |
( |
| ) |
const |
Returns the dataset read by ReadImageInformation Couple this with the ImageHelper to get statistics about the image, like pixel extent, to be able to initialize buffers for reading
- Examples:
- StreamImageReaderTest.cxx.
bool gdcm::StreamImageReader::Read |
( |
char * |
inReadBuffer, |
|
|
const std::size_t & |
inBufferLength |
|
) |
| |
Read the DICOM image. There are three reasons for failure:
- The extent is not set
- the conversion from char* to std::ostream (internally) fails
- the given buffer isn't large enough to accommodate the desired pixel extent. This method has been implemented to look similar to the metaimageio in itk MUST have an extent defined, or else Read will return false. If no particular extent is required, use ImageReader instead.
- Examples:
- StreamImageReaderTest.cxx.
virtual bool gdcm::StreamImageReader::ReadImageInformation |
( |
| ) |
|
|
virtual |
Set the spacing and dimension information for the set filename. returns false if the file is not initialized or not an image, with the pixel (7fe0,0010) tag.
- Examples:
- StreamImageReaderTest.cxx.
void gdcm::StreamImageReader::SetFileName |
( |
const char * |
inFileName | ) |
|
One of either SetFileName or SetStream must be called prior to any other functions. These initialize an internal Reader class to be able to get non-pixel image information.
- Examples:
- StreamImageReaderTest.cxx.
void gdcm::StreamImageReader::SetStream |
( |
std::istream & |
inStream | ) |
|
The documentation for this class was generated from the following file: