Generic image implementation for DICOM files. More...
#include <vil_dicom.h>
Public Member Functions | |
vil_dicom_image (vil_stream *is, unsigned ni, unsigned nj, unsigned nplanes, vil_pixel_format format) | |
vil_dicom_image (vil_stream *is) | |
~vil_dicom_image () | |
virtual unsigned | nplanes () const |
Dimensions: Planes x ni x nj. | |
virtual unsigned | ni () const |
Dimensions: Planes x ni x nj. | |
virtual unsigned | nj () const |
Dimensions: Planes x ni x nj. | |
virtual enum vil_pixel_format | pixel_format () const |
Pixel Format. | |
virtual vil_image_view_base_sptr | get_copy_view (unsigned i0, unsigned ni, unsigned j0, unsigned nj) const |
Create a read/write view of a copy of this data. | |
virtual vil_image_view_base_sptr | get_view (unsigned i0, unsigned ni, unsigned j0, unsigned nj) const |
Create a read/write view of the data. | |
virtual bool | put_view (const vil_image_view_base &im, unsigned i0, unsigned j0) |
Put the data in this view back into the image source. | |
char const * | file_format () const |
Return a string describing the file format. | |
bool | get_property (char const *tag, void *prop=0) const |
Extra property information. | |
vil_dicom_header_info const & | header () const |
virtual void | correct_manufacturer_discrepancies () |
correct known manufacturers drop-offs in header data!. | |
virtual bool | interpret_hologic_header (float &xpixSize, float &ypixSize) |
try and interpret the hologic comments section to extract pixel size. | |
vil_image_view_base_sptr | get_view () const |
Create a read/write view of all the data. | |
vil_image_view_base_sptr | get_copy_view () const |
Create a read/write view of a copy of all the data. | |
virtual bool | put_view (const vil_image_view_base &im) |
Put the data in this view back into the image source at the origin. | |
virtual bool | view_fits (const vil_image_view_base &im, unsigned i0, unsigned j0) |
Check that a view will fit into the data at the given offset. | |
Protected Member Functions | |
void | ref () |
void | unref () |
Protected Attributes | |
vcl_atomic_count | reference_count_ |
Private Attributes | |
vil_dicom_header_info | header_ |
vil_image_resource_sptr | pixels_ |
Friends | |
class | vil_smart_ptr< vil_image_resource > |
Related Functions | |
(Note that these are not member functions.) | |
template<class destT , class kernelT , class accumT > | |
vil_image_resource_sptr | vil_convolve_1d (const vil_image_resource_sptr &src_im, const destT, const kernelT *kernel, int k_lo, int k_hi, const accumT, vil_convolve_boundary_option start_option, vil_convolve_boundary_option end_option) |
Create an image_resource object which convolve kernel[x] x in [k_lo,k_hi] with srcT. | |
template<class destT , class kernelT , class accumT > | |
vil_image_resource_sptr | vil_correlate_1d (const vil_image_resource_sptr &src_im, const destT, const kernelT *kernel, vcl_ptrdiff_t k_lo, vcl_ptrdiff_t k_hi, const accumT, vil_convolve_boundary_option start_option, vil_convolve_boundary_option end_option) |
Create an image_resource object which correlate kernel[x] x in [k_lo,k_hi] with srcT. | |
vil_image_resource_sptr | vil_clamp (const vil_image_resource_sptr &src, double low, double hi) |
Clamp an image resource between two values. | |
bool | vil_copy_deep (const vil_image_resource_sptr &src, vil_image_resource_sptr &dest) |
Copy src to dest. | |
vil_image_resource_sptr | vil_crop (const vil_image_resource_sptr &src, unsigned i0, unsigned n_i, unsigned j0, unsigned n_j) |
Crop to a region of src. | |
vil_image_resource_sptr | vil_decimate (const vil_image_resource_sptr &src, unsigned i_factor, unsigned j_factor=0) |
decimate to a region of src. | |
vil_image_resource_sptr | vil_flip_lr (const vil_image_resource_sptr &src) |
Flip an image resource left to right. | |
vil_image_resource_sptr | vil_flip_ud (const vil_image_resource_sptr &src) |
Flip an image resource left to right. | |
vil_image_resource_sptr | vil_load_image_resource (char const *filename, bool verbose=true) |
Load an image resource object from a file. | |
vil_image_resource_sptr | vil_load_image_resource_raw (vil_stream *, bool verbose=true) |
Load from a stream. | |
vil_image_resource_sptr | vil_load_image_resource_raw (char const *, bool verbose=true) |
Load an image resource object from a file. | |
vil_image_resource_sptr | vil_load_image_resource_plugin (char const *) |
Load from a filename with a plugin. | |
vil_image_resource_sptr | vil_new_image_resource (unsigned ni, unsigned nj, unsigned nplanes, vil_pixel_format format) |
Make a new image of given format. | |
vil_image_resource_sptr | vil_new_image_resource (unsigned ni, unsigned nj, vil_image_resource_sptr const &prototype) |
Make a new image, similar format to the prototype. | |
vil_image_resource_sptr | vil_new_image_resource (vil_stream *os, unsigned ni, unsigned nj, unsigned nplanes, vil_pixel_format format, char const *file_format) |
Make a new image. | |
vil_image_resource_sptr | vil_new_image_resource (char const *filename, unsigned ni, unsigned nj, vil_image_resource_sptr const &prototype, char const *file_format) |
Make a new vil_image_resource, writing to file "filename", size ni x nj, copying pixel format etc from "prototype". | |
vil_image_resource_sptr | vil_new_image_resource (char const *filename, unsigned ni, unsigned nj, unsigned nplanes, vil_pixel_format format, char const *file_format) |
Make a new image. | |
vil_image_resource_sptr | vil_new_image_resource (vil_stream *os, unsigned ni, unsigned nj, vil_image_resource_sptr const &prototype, char const *file_format) |
Make a new vil_image_resource, writing to stream "os", size ni x nj, copying pixel format etc from "prototype". | |
vil_image_resource_sptr | vil_new_image_resource (char const *filename, unsigned ni, unsigned nj, unsigned nplanes, vil_image_resource_sptr const &prototype, char const *format=0) |
Make a new vil_image_resource, writing to file "filename", size ni x nj, copying pixel format etc from "prototype". | |
vil_image_resource_sptr | vil_new_image_resource (vil_stream *os, unsigned ni, unsigned nj, unsigned nplanes, vil_image_resource_sptr const &prototype, char const *file_format=0) |
Make a new vil_image_resource, writing to stream "os", size ni x nj, copying pixel format etc from "prototype". | |
vil_image_resource_sptr | vil_new_image_resource_interleaved (unsigned ni, unsigned nj, unsigned nplanes, vil_pixel_format format) |
Make a new image of given format with interleaved planes. | |
vil_image_resource_sptr | vil_new_image_resource_of_view (vil_image_view_base const &view) |
Make a new image resource that is a wrapper on an existing view's data. | |
vil_image_resource_sptr | vil_plane (const vil_image_resource_sptr &src, unsigned p) |
Return a specific plane of an image. | |
bool | vil_save_image_resource (const vil_image_resource_sptr &ir, char const *filename, char const *file_format) |
Send vil_image_resource to disk. | |
bool | vil_save_image_resource (const vil_image_resource_sptr &ir, char const *filename) |
Save vil_image_resource to file, deducing format from filename. | |
vil_image_resource_sptr | vil_transpose (const vil_image_resource_sptr &src) |
Transpose an image. |
Generic image implementation for DICOM files.
Definition at line 40 of file vil_dicom.h.
vil_dicom_image::vil_dicom_image | ( | vil_stream * | is, |
unsigned | ni, | ||
unsigned | nj, | ||
unsigned | nplanes, | ||
vil_pixel_format | format | ||
) |
vil_dicom_image::vil_dicom_image | ( | vil_stream * | is | ) |
vil_dicom_image::~vil_dicom_image | ( | ) |
virtual void vil_dicom_image::correct_manufacturer_discrepancies | ( | ) | [virtual] |
correct known manufacturers drop-offs in header data!.
For example Hologic encode pixel-size in the imageComment! NB if this section starts bloating, use derived classes which override correct_manufacturer_discrepancies
char const* vil_dicom_image::file_format | ( | ) | const [virtual] |
Return a string describing the file format.
Only file images have a format, others return 0
Reimplemented from vil_image_resource.
virtual vil_image_view_base_sptr vil_dicom_image::get_copy_view | ( | unsigned | i0, |
unsigned | n_i, | ||
unsigned | j0, | ||
unsigned | n_j | ||
) | const [virtual] |
Create a read/write view of a copy of this data.
This function will always return a multi-plane scalar-pixel view of the data.
Implements vil_image_resource.
vil_image_view_base_sptr vil_image_resource::get_copy_view | ( | ) | const [inline, inherited] |
Create a read/write view of a copy of all the data.
Reimplemented in vil_nitf2_image, and vil_j2k_image.
Definition at line 80 of file vil_image_resource.h.
bool vil_dicom_image::get_property | ( | char const * | tag, |
void * | property_value = 0 |
||
) | const [virtual] |
Extra property information.
Implements vil_image_resource.
virtual vil_image_view_base_sptr vil_dicom_image::get_view | ( | unsigned | i0, |
unsigned | n_i, | ||
unsigned | j0, | ||
unsigned | n_j | ||
) | const [virtual] |
Create a read/write view of the data.
Modifying this view might modify the actual data. If you want to modify this data in place, call put_view after you done, and it should work efficiently. This function will always return a multi-plane scalar-pixel view of the data.
If you want to fill an existing view (e.g. a window onto some other image), then use
vil_reformat(data->get_view(..), window);
Reimplemented from vil_image_resource.
vil_image_view_base_sptr vil_image_resource::get_view | ( | ) | const [inline, inherited] |
Create a read/write view of all the data.
Definition at line 69 of file vil_image_resource.h.
vil_dicom_header_info const& vil_dicom_image::header | ( | ) | const [inline] |
Definition at line 70 of file vil_dicom.h.
virtual bool vil_dicom_image::interpret_hologic_header | ( | float & | xpixSize, |
float & | ypixSize | ||
) | [virtual] |
try and interpret the hologic comments section to extract pixel size.
virtual unsigned vil_dicom_image::ni | ( | ) | const [virtual] |
virtual unsigned vil_dicom_image::nj | ( | ) | const [virtual] |
virtual unsigned vil_dicom_image::nplanes | ( | ) | const [virtual] |
Dimensions: Planes x ni x nj.
This concept is treated as a synonym to components.
Implements vil_image_resource.
virtual enum vil_pixel_format vil_dicom_image::pixel_format | ( | ) | const [virtual] |
Pixel Format.
A standard RGB RGB RGB of chars image has pixel_format() == VIL_PIXEL_FORMAT_BYTE
Implements vil_image_resource.
virtual bool vil_dicom_image::put_view | ( | const vil_image_view_base & | im, |
unsigned | i0, | ||
unsigned | j0 | ||
) | [virtual] |
Put the data in this view back into the image source.
The view must be of scalar components. Assign your view to a scalar-component view if this is not the case.
Implements vil_image_resource.
virtual bool vil_image_resource::put_view | ( | const vil_image_view_base & | im | ) | [inline, virtual, inherited] |
Put the data in this view back into the image source at the origin.
Reimplemented in vil_j2k_image.
Definition at line 92 of file vil_image_resource.h.
void vil_image_resource::ref | ( | ) | [inline, protected, inherited] |
Definition at line 110 of file vil_image_resource.h.
void vil_image_resource::unref | ( | ) | [inline, protected, inherited] |
Definition at line 111 of file vil_image_resource.h.
bool vil_image_resource::view_fits | ( | const vil_image_view_base & | im, |
unsigned | i0, | ||
unsigned | j0 | ||
) | [virtual, inherited] |
Check that a view will fit into the data at the given offset.
This includes checking that the pixel type is scalar.
Reimplemented in vil_j2k_image.
Definition at line 30 of file vil_image_resource.cxx.
vil_image_resource_sptr vil_clamp | ( | const vil_image_resource_sptr & | src, |
double | low, | ||
double | hi | ||
) | [related] |
Clamp an image resource between two values.
Reimplemented in vil_clamp_image_resource.
Definition at line 22 of file vil_clamp.cxx.
vil_image_resource_sptr vil_convolve_1d | ( | const vil_image_resource_sptr & | src_im, |
const destT | , | ||
const kernelT * | kernel, | ||
int | k_lo, | ||
int | k_hi, | ||
const accumT | , | ||
vil_convolve_boundary_option | start_option, | ||
vil_convolve_boundary_option | end_option | ||
) | [related] |
Create an image_resource object which convolve kernel[x] x in [k_lo,k_hi] with srcT.
kernel | should point to tap 0. |
Definition at line 403 of file vil_convolve_1d.h.
bool vil_copy_deep | ( | const vil_image_resource_sptr & | src, |
vil_image_resource_sptr & | dest | ||
) | [related] |
Copy src to dest.
This is useful if you want to copy on image into a window on another image. src and dest must have identical sizes, and pixel-types. Returns false if the copy failed. O(size).
Definition at line 41 of file vil_copy.cxx.
vil_image_resource_sptr vil_correlate_1d | ( | const vil_image_resource_sptr & | src_im, |
const destT | , | ||
const kernelT * | kernel, | ||
vcl_ptrdiff_t | k_lo, | ||
vcl_ptrdiff_t | k_hi, | ||
const accumT | , | ||
vil_convolve_boundary_option | start_option, | ||
vil_convolve_boundary_option | end_option | ||
) | [related] |
Create an image_resource object which correlate kernel[x] x in [k_lo,k_hi] with srcT.
kernel | should point to tap 0. |
Definition at line 214 of file vil_correlate_1d.h.
vil_image_resource_sptr vil_crop | ( | const vil_image_resource_sptr & | src, |
unsigned | i0, | ||
unsigned | n_i, | ||
unsigned | j0, | ||
unsigned | n_j | ||
) | [related] |
Crop to a region of src.
Definition at line 15 of file vil_crop.cxx.
vil_image_resource_sptr vil_decimate | ( | const vil_image_resource_sptr & | src, |
unsigned | i_factor, | ||
unsigned | j_factor = 0 |
||
) | [related] |
decimate to a region of src.
Definition at line 23 of file vil_decimate.cxx.
vil_image_resource_sptr vil_flip_lr | ( | const vil_image_resource_sptr & | src | ) | [related] |
Flip an image resource left to right.
Definition at line 17 of file vil_flip.cxx.
vil_image_resource_sptr vil_flip_ud | ( | const vil_image_resource_sptr & | src | ) | [related] |
Flip an image resource left to right.
Reimplemented in vil_flip_ud_image_resource.
Definition at line 124 of file vil_flip.cxx.
vil_image_resource_sptr vil_load_image_resource | ( | char const * | filename, |
bool | verbose = true |
||
) | [related] |
Load an image resource object from a file.
Definition at line 71 of file vil_load.cxx.
vil_image_resource_sptr vil_load_image_resource_plugin | ( | char const * | ) | [related] |
Load from a filename with a plugin.
Definition at line 83 of file vil_load.cxx.
vil_image_resource_sptr vil_load_image_resource_raw | ( | vil_stream * | , |
bool | verbose = true |
||
) | [related] |
vil_image_resource_sptr vil_load_image_resource_raw | ( | char const * | , |
bool | verbose = true |
||
) | [related] |
Load an image resource object from a file.
Won't use plugins.
Definition at line 45 of file vil_load.cxx.
vil_image_resource_sptr vil_new_image_resource | ( | unsigned | ni, |
unsigned | nj, | ||
unsigned | nplanes, | ||
vil_pixel_format | format | ||
) | [related] |
Make a new image of given format.
If the format is not scalar, the number of planes must be 1. When you create a multi-component image in this way, the vil_image_resource API will treat it as a scalar pixel image with multiple planes. (This doesn't affect the underlying data storage.)
Reimplemented in vil_memory_image.
Definition at line 32 of file vil_new.cxx.
vil_image_resource_sptr vil_new_image_resource | ( | unsigned | ni, |
unsigned | nj, | ||
vil_image_resource_sptr const & | prototype | ||
) | [related] |
Make a new image, similar format to the prototype.
Definition at line 69 of file vil_new.cxx.
vil_image_resource_sptr vil_new_image_resource | ( | vil_stream * | os, |
unsigned | ni, | ||
unsigned | nj, | ||
unsigned | nplanes, | ||
vil_pixel_format | format, | ||
char const * | file_format | ||
) | [related] |
Make a new image.
Definition at line 77 of file vil_new.cxx.
vil_image_resource_sptr vil_new_image_resource | ( | char const * | filename, |
unsigned | ni, | ||
unsigned | nj, | ||
unsigned | nplanes, | ||
vil_image_resource_sptr const & | prototype, | ||
char const * | format = 0 |
||
) | [related] |
Make a new vil_image_resource, writing to file "filename", size ni x nj, copying pixel format etc from "prototype".
vil_image_resource_sptr vil_new_image_resource | ( | vil_stream * | os, |
unsigned | ni, | ||
unsigned | nj, | ||
unsigned | nplanes, | ||
vil_image_resource_sptr const & | prototype, | ||
char const * | file_format = 0 |
||
) | [related] |
Make a new vil_image_resource, writing to stream "os", size ni x nj, copying pixel format etc from "prototype".
vil_image_resource_sptr vil_new_image_resource | ( | char const * | filename, |
unsigned | ni, | ||
unsigned | nj, | ||
vil_image_resource_sptr const & | prototype, | ||
char const * | file_format | ||
) | [related] |
Make a new vil_image_resource, writing to file "filename", size ni x nj, copying pixel format etc from "prototype".
Definition at line 104 of file vil_new.cxx.
vil_image_resource_sptr vil_new_image_resource | ( | char const * | filename, |
unsigned | ni, | ||
unsigned | nj, | ||
unsigned | nplanes, | ||
vil_pixel_format | format, | ||
char const * | file_format | ||
) | [related] |
Make a new image.
Definition at line 123 of file vil_new.cxx.
vil_image_resource_sptr vil_new_image_resource | ( | vil_stream * | os, |
unsigned | ni, | ||
unsigned | nj, | ||
vil_image_resource_sptr const & | prototype, | ||
char const * | file_format | ||
) | [related] |
Make a new vil_image_resource, writing to stream "os", size ni x nj, copying pixel format etc from "prototype".
Definition at line 143 of file vil_new.cxx.
vil_image_resource_sptr vil_new_image_resource_interleaved | ( | unsigned | ni, |
unsigned | nj, | ||
unsigned | nplanes, | ||
vil_pixel_format | format | ||
) | [related] |
Make a new image of given format with interleaved planes.
The format must be scalar.
Reimplemented in vil_memory_image.
Definition at line 44 of file vil_new.cxx.
vil_image_resource_sptr vil_new_image_resource_of_view | ( | vil_image_view_base const & | view | ) | [related] |
Make a new image resource that is a wrapper on an existing view's data.
Reimplemented in vil_memory_image.
Definition at line 62 of file vil_new.cxx.
vil_image_resource_sptr vil_plane | ( | const vil_image_resource_sptr & | src, |
unsigned | p | ||
) | [related] |
Return a specific plane of an image.
Reimplemented in vil_plane_image_resource.
Definition at line 19 of file vil_plane.cxx.
bool vil_save_image_resource | ( | const vil_image_resource_sptr & | ir, |
char const * | filename, | ||
char const * | file_format | ||
) | [related] |
Send vil_image_resource to disk.
Definition at line 128 of file vil_save.cxx.
bool vil_save_image_resource | ( | const vil_image_resource_sptr & | ir, |
char const * | filename | ||
) | [related] |
Save vil_image_resource to file, deducing format from filename.
Definition at line 147 of file vil_save.cxx.
friend class vil_smart_ptr< vil_image_resource > [friend, inherited] |
Definition at line 109 of file vil_image_resource.h.
vil_image_resource_sptr vil_transpose | ( | const vil_image_resource_sptr & | src | ) | [related] |
Transpose an image.
Definition at line 17 of file vil_transpose.cxx.
Definition at line 42 of file vil_dicom.h.
Definition at line 43 of file vil_dicom.h.
vcl_atomic_count vil_image_resource::reference_count_ [protected, inherited] |
Definition at line 114 of file vil_image_resource.h.