vil_image_resource Class Reference

#include <vil_image_resource.h>

Inheritance diagram for vil_image_resource:

Inheritance graph
[legend]

List of all members.


Detailed Description

Abstract representation of an image source or image destination.

Most references to vil_image_resource objects should usually be done through smart pointers - vil_image_resource_sptr;

All image data is presumed to be in planes, not components. This does not say whether the data is stored on disk or in memory as RGBRGBRGB.. or RRR..GGG..BBB.., just that the interface will always tell you that it has a multi-plane single-component view.

Definition at line 31 of file vil_image_resource.h.


Public Member Functions

 vil_image_resource ()
 the reference count starts at 0.
virtual ~vil_image_resource ()
virtual unsigned nplanes () const =0
 Dimensions: Planes x ni x nj.
virtual unsigned ni () const =0
 Dimensions: Planes x ni x nj.
virtual unsigned nj () const =0
 Dimensions: Planes x ni x nj.
virtual enum vil_pixel_format pixel_format () const =0
 Pixel Format.
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.
virtual vil_image_view_base_sptr get_copy_view (unsigned i0, unsigned n_i, unsigned j0, unsigned n_j) const =0
 Create a read/write view of a copy of this 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, unsigned i0, unsigned j0)=0
 Put the data in this view back into the image source.
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.
virtual char const * file_format () const
 Return a string describing the file format.
virtual bool get_property (char const *tag, void *property_value=0) const =0
 Extra property information.

Protected Member Functions

void ref ()
void unref ()

Protected Attributes

vcl_atomic_count reference_count_

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.
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_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, 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".
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.

Constructor & Destructor Documentation

vil_image_resource::vil_image_resource (  ) 

the reference count starts at 0.

Definition at line 17 of file vil_image_resource.cxx.

vil_image_resource::~vil_image_resource (  )  [virtual]

Definition at line 19 of file vil_image_resource.cxx.


Member Function Documentation

virtual unsigned vil_image_resource::nplanes (  )  const [pure virtual]

virtual unsigned vil_image_resource::ni (  )  const [pure virtual]

virtual unsigned vil_image_resource::nj (  )  const [pure virtual]

virtual enum vil_pixel_format vil_image_resource::pixel_format (  )  const [pure virtual]

virtual vil_image_view_base_sptr vil_image_resource::get_view ( unsigned  i0,
unsigned  n_i,
unsigned  j0,
unsigned  n_j 
) const [inline, 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.

Returns:
0 if unable to get view of correct size, or if resource is write-only.
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_dicom_image, vil_clamp_image_resource, vil_crop_image_resource, vil_decimate_image_resource, vil_flip_lr_image_resource, vil_flip_ud_image_resource, vil_memory_image, vil_plane_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]

Create a read/write view of all the data.

Definition at line 69 of file vil_image_resource.h.

virtual vil_image_view_base_sptr vil_image_resource::get_copy_view ( unsigned  i0,
unsigned  n_i,
unsigned  j0,
unsigned  n_j 
) const [pure virtual]

vil_image_view_base_sptr vil_image_resource::get_copy_view (  )  const [inline]

Create a read/write view of a copy of all the data.

Reimplemented in vil_j2k_image, and vil_nitf2_image.

Definition at line 80 of file vil_image_resource.h.

virtual bool vil_image_resource::put_view ( const vil_image_view_base im,
unsigned  i0,
unsigned  j0 
) [pure 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.

Returns:
false if failed, because e.g. resource is read-only, format of view is not correct (if it is a compound pixel type, try assigning it to a multi-plane scalar pixel view.)

Implemented in vil_convolve_1d_resource< kernelT, accumT, destT >, vil_correlate_1d_resource< kernelT, accumT, destT >, vil_bmp_image, vil_dicom_image, vil_j2k_image, vil_j2k_nitf2_pyramid_image_resource, vil_j2k_pyramid_image_resource, vil_jpeg_image, vil_nitf2_image, vil_png_image, vil_pnm_image, vil_ras_image, vil_tiff_image, vil_blocked_image_facade, vil_blocked_image_resource, vil_cached_image_resource, vil_clamp_image_resource, vil_crop_image_resource, vil_decimate_image_resource, vil_flip_lr_image_resource, vil_flip_ud_image_resource, vil_image_resource_plugin, vil_memory_image, vil_plane_image_resource, vil_pyramid_image_resource, and vil_transpose_image_resource.

virtual bool vil_image_resource::put_view ( const vil_image_view_base im  )  [inline, virtual]

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_image_resource::view_fits ( const vil_image_view_base im,
unsigned  i0,
unsigned  j0 
) [virtual]

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.

virtual char const* vil_image_resource::file_format (  )  const [inline, virtual]

bool vil_image_resource::get_property ( char const *  tag,
void *  property_value = 0 
) const [pure virtual]

void vil_image_resource::ref (  )  [inline, protected]

Definition at line 110 of file vil_image_resource.h.

void vil_image_resource::unref (  )  [inline, protected]

Definition at line 111 of file vil_image_resource.h.


Friends And Related Function Documentation

friend class vil_smart_ptr< vil_image_resource > [friend]

Definition at line 109 of file vil_image_resource.h.

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 
) [related]

Create an image_resource object which convolve kernel[x] x in [k_lo,k_hi] with srcT.

Note:
This function reverses the kernel. If you don't want the kernel reversed, use vil_correlate_1d instead.
Parameters:
kernel should point to tap 0.

Definition at line 403 of file vil_convolve_1d.h.

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 
) [related]

Create an image_resource object which correlate kernel[x] x in [k_lo,k_hi] with srcT.

Note:
This function does not reverse the kernel. If you want the kernel reversed, use vil_convolve_1d instead.
Parameters:
kernel should point to tap 0.

Definition at line 214 of file vil_correlate_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 44 of file vil_copy.cxx.

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.

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 56 of file vil_load.cxx.

vil_image_resource_sptr vil_load_image_resource_raw ( vil_stream ,
bool  verbose = true 
) [related]

Load from a stream.

Won't use plugins.

Definition at line 18 of file vil_load.cxx.

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 44 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 68 of file vil_load.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,
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 ( 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".

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.


Member Data Documentation

vcl_atomic_count vil_image_resource::reference_count_ [protected]

Definition at line 114 of file vil_image_resource.h.


The documentation for this class was generated from the following files:

Generated on Sun Nov 22 06:19:01 2009 for core/vil by  doxygen 1.5.5