Generic image implementation for Sun raster files. More...
#include <vil_ras.h>
Public Member Functions | |
vil_ras_image (vil_stream *is) | |
vil_ras_image (vil_stream *is, unsigned ni, unsigned nj, unsigned nplanes, vil_pixel_format format) | |
virtual | ~vil_ras_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 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 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. | |
virtual vil_image_view_base_sptr | get_view (unsigned i0, unsigned n_i, unsigned j0, unsigned n_j) const |
Create a read/write view of the data. | |
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 Member Functions | |
bool | read_header () |
Read the header of a Sun raster file. | |
bool | write_header () |
Private Attributes | |
vil_stream * | vs_ |
vxl_uint_32 | width_ |
vxl_uint_32 | height_ |
unsigned | components_ |
unsigned | bits_per_component_ |
vil_streampos | start_of_data_ |
vxl_uint_32 | depth_ |
vxl_uint_32 | length_ |
vxl_uint_32 | type_ |
vxl_uint_32 | map_type_ |
vxl_uint_32 | map_length_ |
vxl_uint_8 * | col_map_ |
vil_pixel_format | format_ |
Friends | |
class | vil_ras_file_format |
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. |
vil_ras_image::vil_ras_image | ( | vil_stream * | is | ) |
Definition at line 136 of file vil_ras.cxx.
vil_ras_image::vil_ras_image | ( | vil_stream * | is, |
unsigned | ni, | ||
unsigned | nj, | ||
unsigned | nplanes, | ||
vil_pixel_format | format | ||
) |
Definition at line 162 of file vil_ras.cxx.
vil_ras_image::~vil_ras_image | ( | ) | [virtual] |
Definition at line 204 of file vil_ras.cxx.
char const * vil_ras_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.
Definition at line 155 of file vil_ras.cxx.
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.
vil_image_view_base_sptr vil_ras_image::get_copy_view | ( | unsigned | i0, |
unsigned | ni, | ||
unsigned | j0, | ||
unsigned | nj | ||
) | const [virtual] |
Create a read/write view of a copy of this data.
This function will always return a multi-plane, scalar-pixel, RGB view of the data, even if the disk format is BGR. This follows the principle of least surprise, since there is an implicit assumption everywhere that 3-component colour image data is stored RGB.
Implements vil_image_resource.
Definition at line 356 of file vil_ras.cxx.
bool vil_ras_image::get_property | ( | char const * | tag, |
void * | property_value = 0 |
||
) | const [virtual] |
Extra property information.
Implements vil_image_resource.
Definition at line 146 of file vil_ras.cxx.
virtual vil_image_view_base_sptr vil_image_resource::get_view | ( | unsigned | i0, |
unsigned | n_i, | ||
unsigned | j0, | ||
unsigned | n_j | ||
) | const [inline, virtual, inherited] |
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 in vil_flip_ud_image_resource, vil_memory_image, vil_plane_image_resource, vil_flip_lr_image_resource, vil_clamp_image_resource, vil_dicom_image, vil_decimate_image_resource, vil_crop_image_resource, and vil_transpose_image_resource.
Definition at line 64 of file vil_image_resource.h.
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.
unsigned vil_ras_image::ni | ( | ) | const [virtual] |
Dimensions: Planes x ni x nj.
The number of pixels in each row.
Implements vil_image_resource.
Definition at line 330 of file vil_ras.cxx.
unsigned vil_ras_image::nj | ( | ) | const [virtual] |
Dimensions: Planes x ni x nj.
The number of pixels in each column.
Implements vil_image_resource.
Definition at line 338 of file vil_ras.cxx.
unsigned vil_ras_image::nplanes | ( | ) | const [virtual] |
Dimensions: Planes x ni x nj.
This concept is treated as a synonym to components.
Implements vil_image_resource.
Definition at line 322 of file vil_ras.cxx.
vil_pixel_format vil_ras_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.
Definition at line 345 of file vil_ras.cxx.
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.
bool vil_ras_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.
Definition at line 441 of file vil_ras.cxx.
bool vil_ras_image::read_header | ( | void | ) | [private] |
Read the header of a Sun raster file.
Definition at line 214 of file vil_ras.cxx.
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.
bool vil_ras_image::write_header | ( | ) | [private] |
Definition at line 297 of file vil_ras.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.
friend class vil_ras_file_format [friend] |
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.
unsigned vil_ras_image::bits_per_component_ [private] |
vxl_uint_8* vil_ras_image::col_map_ [private] |
unsigned vil_ras_image::components_ [private] |
vxl_uint_32 vil_ras_image::depth_ [private] |
vil_pixel_format vil_ras_image::format_ [private] |
vxl_uint_32 vil_ras_image::height_ [private] |
vxl_uint_32 vil_ras_image::length_ [private] |
vxl_uint_32 vil_ras_image::map_length_ [private] |
vxl_uint_32 vil_ras_image::map_type_ [private] |
vcl_atomic_count vil_image_resource::reference_count_ [protected, inherited] |
Definition at line 114 of file vil_image_resource.h.
vil_streampos vil_ras_image::start_of_data_ [private] |
vxl_uint_32 vil_ras_image::type_ [private] |
vil_stream* vil_ras_image::vs_ [private] |
vxl_uint_32 vil_ras_image::width_ [private] |