Public Member Functions | Static Public Attributes | Protected Member Functions | Protected Attributes | Friends | Related Functions
vil_nitf2_image Class Reference

Class for reading NITF 2.1 imagery files. More...

#include <vil_nitf2_image.h>

Inheritance diagram for vil_nitf2_image:
Inheritance graph
[legend]

List of all members.

Public Member Functions

 vil_nitf2_image (vil_stream *is)
 Instantiate an image resource, but doesn't read anything.
 vil_nitf2_image (const vcl_string &filePath, const char *mode)
virtual ~vil_nitf2_image ()
virtual unsigned nplanes () const
 return the image info of the current image.
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 unsigned size_block_i () const
 Block size in columns.
virtual unsigned size_block_j () const
 Block size in rows.
virtual unsigned n_block_i () const
 Number of blocks in image width.
virtual unsigned n_block_j () const
 Number of blocks in image height.
char const * file_format () const
 returns "nitf vM.N".
bool is_jpeg_2000_compressed () const
virtual vil_image_view_base_sptr get_copy_view_decimated_j2k (unsigned i0, unsigned ni, unsigned j0, unsigned nj, double i_factor, double j_factor) const
virtual vil_image_view_base_sptr get_copy_view_decimated_j2k (double i_factor, double j_factor) const
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_copy_view () const
 Create a read/write view of a copy of all the data.
virtual bool put_view (const vil_image_view_base &, unsigned, unsigned)
 Put the data in this view back into the image source.
virtual bool put_block (unsigned, unsigned, const vil_image_view_base &)
 put the block into the resource at the indicated location.
virtual vil_image_view_base_sptr get_block (unsigned int blockIndexX, unsigned int blockIndexY) const
virtual bool get_property (char const *tag, void *property_value=0) const
 Extra property information.
const vcl_vector
< vil_nitf2_image_subheader * > & 
get_image_headers () const
const vil_nitf2_headerget_header () const
const vcl_vector
< vil_nitf2_des * > & 
get_des () const
virtual void set_current_image (unsigned int index)
 Since the VIL API (eg.
virtual unsigned int current_image () const
virtual unsigned int nimages () const
bool parse_headers ()
vil_nitf2_classification::file_version file_version () const
virtual
vil_nitf2_field::field_tree
get_tree () const
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 vil_image_view_base_sptr get_block (unsigned block_index_i, unsigned block_index_j) const =0
 Block access.
virtual bool get_blocks (unsigned start_block_i, unsigned end_block_i, unsigned start_block_j, unsigned end_block_j, vcl_vector< vcl_vector< vil_image_view_base_sptr > > &blocks) const
 the multiple blocks are in col row order, i.e. blocks[i][j].
virtual bool put_blocks (unsigned start_block_i, unsigned end_block_i, unsigned start_block_j, unsigned end_block_j, vcl_vector< vcl_vector< vil_image_view_base_sptr > > const &blocks)
 put multiple blocks in raster order, i.e., blocks[i][j].
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 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.

Static Public Attributes

static vil_image_view_base_sptr(* s_decode_jpeg_2000 )(vil_stream *vs, unsigned i0, unsigned ni, unsigned j0, unsigned nj, double i_factor, double j_factor)
 All instances of vil_nitf2_image will use s_decode_jpeg_2000() to decode JPEG 2000 streams if you set the function.

Protected Member Functions

virtual vil_image_view_base_sptr get_block_j2k (unsigned int blockIndexX, unsigned int blockIndexY) const
virtual vil_image_view_base_sptr get_copy_view_uncompressed (unsigned i0, unsigned ni, unsigned j0, unsigned nj) const
vil_streampos get_offset_to (vil_nitf2_header::section_type sec, vil_nitf2_header::portion_type por, unsigned int index=0) const
vil_streampos size_to (vil_nitf2_header::section_type sec, vil_nitf2_header::portion_type por, int index) const
vil_streampos get_offset_to_image_data_block_band (unsigned int imageIndex, unsigned int blockIndexX, unsigned int blockIndexY, int bandIndex) const
void clear_image_headers ()
const vil_nitf2_image_subheadercurrent_image_header () const
void clear_des ()
vil_image_view_base_sptr fill_block (unsigned i0, unsigned icrop, unsigned j0, unsigned jcrop, vil_image_view_base_sptr &view) const
bool block_i_offset (unsigned block_i, unsigned i, unsigned &i_offset) const
 Get the offset from the start of the block row for pixel position i.
bool block_j_offset (unsigned block_j, unsigned j, unsigned &j_offset) const
 Get the offset from the start of the block column for pixel position j.
bool trim_border_blocks (unsigned i0, unsigned ni, unsigned j0, unsigned nj, unsigned start_block_i, unsigned start_block_j, vcl_vector< vcl_vector< vil_image_view_base_sptr > > &blocks) const
vil_image_view_base_sptr glue_blocks_together (const vcl_vector< vcl_vector< vil_image_view_base_sptr > > &blocks) const
void ref ()
void unref ()

Protected Attributes

vil_nitf2_header m_file_header
vcl_vector
< vil_nitf2_image_subheader * > 
m_image_headers
vcl_vector< vil_nitf2_des * > m_des
vil_streamm_stream
unsigned int m_current_image_index
vcl_atomic_count reference_count_

Friends

class vil_smart_ptr< vil_blocked_image_resource >
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.

Detailed Description

Class for reading NITF 2.1 imagery files.

It works just like any other vil_image_resource class except that it does support retrieving multiple images from the same file. Call nimages() to find out how many images are in this resource, and then call set_current_image() to tell the class which image you want to work with presently. All regular vil_image_resource functions will operate on the current image.

You can access image header information through get_image_headers() and file header information through get_header().

Known reading limitations:

Things that do work:

Definition at line 71 of file vil_nitf2_image.h.


Constructor & Destructor Documentation

vil_nitf2_image::vil_nitf2_image ( vil_stream is)

Instantiate an image resource, but doesn't read anything.

You'll want to call parse_headers() before you do anything with me (eg. before you ask for any image data). If that returns false, then I am invalid and useless to you in every way.

Definition at line 142 of file vil_nitf2_image.cxx.

vil_nitf2_image::vil_nitf2_image ( const vcl_string &  filePath,
const char *  mode 
)

Definition at line 149 of file vil_nitf2_image.cxx.

vil_nitf2_image::~vil_nitf2_image ( ) [virtual]

Definition at line 177 of file vil_nitf2_image.cxx.


Member Function Documentation

bool vil_blocked_image_resource::block_i_offset ( unsigned  block_i,
unsigned  i,
unsigned &  i_offset 
) const [protected, inherited]

Get the offset from the start of the block row for pixel position i.

Definition at line 136 of file vil_blocked_image_resource.cxx.

bool vil_blocked_image_resource::block_j_offset ( unsigned  block_j,
unsigned  j,
unsigned &  j_offset 
) const [protected, inherited]

Get the offset from the start of the block column for pixel position j.

Definition at line 151 of file vil_blocked_image_resource.cxx.

void vil_nitf2_image::clear_des ( ) [protected]

Definition at line 168 of file vil_nitf2_image.cxx.

void vil_nitf2_image::clear_image_headers ( ) [protected]

Definition at line 160 of file vil_nitf2_image.cxx.

unsigned int vil_nitf2_image::current_image ( ) const [virtual]

Definition at line 184 of file vil_nitf2_image.cxx.

const vil_nitf2_image_subheader * vil_nitf2_image::current_image_header ( ) const [protected]

Definition at line 339 of file vil_nitf2_image.cxx.

char const * vil_nitf2_image::file_format ( ) const [virtual]

returns "nitf vM.N".

Reimplemented from vil_image_resource.

Definition at line 321 of file vil_nitf2_image.cxx.

vil_nitf2_classification::file_version vil_nitf2_image::file_version ( ) const

Definition at line 316 of file vil_nitf2_image.cxx.

vil_image_view_base_sptr vil_blocked_image_resource::fill_block ( unsigned  i0,
unsigned  icrop,
unsigned  j0,
unsigned  jcrop,
vil_image_view_base_sptr view 
) const [protected, inherited]
virtual vil_image_view_base_sptr vil_blocked_image_resource::get_block ( unsigned  block_index_i,
unsigned  block_index_j 
) const [pure virtual, inherited]
vil_image_view_base_sptr vil_nitf2_image::get_block ( unsigned int  blockIndexX,
unsigned int  blockIndexY 
) const [virtual]

Definition at line 652 of file vil_nitf2_image.cxx.

vil_image_view_base_sptr vil_nitf2_image::get_block_j2k ( unsigned int  blockIndexX,
unsigned int  blockIndexY 
) const [protected, virtual]

Definition at line 635 of file vil_nitf2_image.cxx.

bool vil_blocked_image_resource::get_blocks ( unsigned  start_block_i,
unsigned  end_block_i,
unsigned  start_block_j,
unsigned  end_block_j,
vcl_vector< vcl_vector< vil_image_view_base_sptr > > &  blocks 
) const [virtual, inherited]

the multiple blocks are in col row order, i.e. blocks[i][j].

Definition at line 37 of file vil_blocked_image_resource.cxx.

vil_image_view_base_sptr vil_nitf2_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.

Returns:
0 if unable to get view of correct size, or if resource is write-only.

Reimplemented from vil_blocked_image_resource.

Definition at line 511 of file vil_nitf2_image.cxx.

virtual vil_image_view_base_sptr vil_nitf2_image::get_copy_view ( ) const [inline, virtual]

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

Reimplemented from vil_image_resource.

Definition at line 126 of file vil_nitf2_image.h.

vil_image_view_base_sptr vil_nitf2_image::get_copy_view_decimated_j2k ( unsigned  i0,
unsigned  ni,
unsigned  j0,
unsigned  nj,
double  i_factor,
double  j_factor 
) const [virtual]

Definition at line 488 of file vil_nitf2_image.cxx.

virtual vil_image_view_base_sptr vil_nitf2_image::get_copy_view_decimated_j2k ( double  i_factor,
double  j_factor 
) const [inline, virtual]

Definition at line 121 of file vil_nitf2_image.h.

vil_image_view_base_sptr vil_nitf2_image::get_copy_view_uncompressed ( unsigned  i0,
unsigned  ni,
unsigned  j0,
unsigned  nj 
) const [protected, virtual]

Definition at line 534 of file vil_nitf2_image.cxx.

const vcl_vector< vil_nitf2_des* >& vil_nitf2_image::get_des ( ) const [inline]

Definition at line 145 of file vil_nitf2_image.h.

const vil_nitf2_header& vil_nitf2_image::get_header ( ) const [inline]

Definition at line 143 of file vil_nitf2_image.h.

const vcl_vector< vil_nitf2_image_subheader* >& vil_nitf2_image::get_image_headers ( ) const [inline]

Definition at line 141 of file vil_nitf2_image.h.

vil_streampos vil_nitf2_image::get_offset_to ( vil_nitf2_header::section_type  sec,
vil_nitf2_header::portion_type  por,
unsigned int  index = 0 
) const [protected]

Definition at line 61 of file vil_nitf2_image.cxx.

vil_streampos vil_nitf2_image::get_offset_to_image_data_block_band ( unsigned int  imageIndex,
unsigned int  blockIndexX,
unsigned int  blockIndexY,
int  bandIndex 
) const [protected]

Definition at line 202 of file vil_nitf2_image.cxx.

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

Extra property information.

Implements vil_blocked_image_resource.

Definition at line 821 of file vil_nitf2_image.cxx.

vil_nitf2_field::field_tree * vil_nitf2_image::get_tree ( ) const [virtual]

Definition at line 847 of file vil_nitf2_image.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.

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

vil_image_view_base_sptr vil_blocked_image_resource::glue_blocks_together ( const vcl_vector< vcl_vector< vil_image_view_base_sptr > > &  blocks) const [protected, inherited]

Definition at line 72 of file vil_blocked_image_resource.cxx.

bool vil_nitf2_image::is_jpeg_2000_compressed ( ) const

Definition at line 478 of file vil_nitf2_image.cxx.

unsigned int vil_nitf2_image::n_block_i ( ) const [virtual]

Number of blocks in image width.

Reimplemented from vil_blocked_image_resource.

Definition at line 454 of file vil_nitf2_image.cxx.

unsigned int vil_nitf2_image::n_block_j ( ) const [virtual]

Number of blocks in image height.

Reimplemented from vil_blocked_image_resource.

Definition at line 459 of file vil_nitf2_image.cxx.

unsigned vil_nitf2_image::ni ( ) const [virtual]

Dimensions: Planes x ni x nj.

The number of pixels in each row.

Implements vil_blocked_image_resource.

Definition at line 350 of file vil_nitf2_image.cxx.

unsigned int vil_nitf2_image::nimages ( ) const [virtual]

Definition at line 195 of file vil_nitf2_image.cxx.

unsigned vil_nitf2_image::nj ( ) const [virtual]

Dimensions: Planes x ni x nj.

The number of pixels in each column.

Implements vil_blocked_image_resource.

Definition at line 364 of file vil_nitf2_image.cxx.

unsigned vil_nitf2_image::nplanes ( ) const [virtual]

return the image info of the current image.

Implements vil_blocked_image_resource.

Definition at line 345 of file vil_nitf2_image.cxx.

bool vil_nitf2_image::parse_headers ( )

Definition at line 282 of file vil_nitf2_image.cxx.

enum vil_pixel_format vil_nitf2_image::pixel_format ( ) const [virtual]

Pixel Format.

A standard RGB RGB RGB of chars image has pixel_format() == VIL_PIXEL_FORMAT_BYTE

Implements vil_blocked_image_resource.

Definition at line 378 of file vil_nitf2_image.cxx.

virtual bool vil_nitf2_image::put_block ( unsigned  block_index_i,
unsigned  block_index_j,
const vil_image_view_base view 
) [inline, virtual]

put the block into the resource at the indicated location.

Implements vil_blocked_image_resource.

Definition at line 132 of file vil_nitf2_image.h.

bool vil_blocked_image_resource::put_blocks ( unsigned  start_block_i,
unsigned  end_block_i,
unsigned  start_block_j,
unsigned  end_block_j,
vcl_vector< vcl_vector< vil_image_view_base_sptr > > const &  blocks 
) [virtual, inherited]

put multiple blocks in raster order, i.e., blocks[i][j].

Definition at line 58 of file vil_blocked_image_resource.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.

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

Implements vil_blocked_image_resource.

Definition at line 129 of file vil_nitf2_image.h.

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

Definition at line 110 of file vil_image_resource.h.

void vil_nitf2_image::set_current_image ( unsigned int  index) [virtual]

Since the VIL API (eg.

get_view()) for retrieving image data doesn't support files with multiple images, clients will need to call this function to tell get_view() which image to read in.

Overloaded from vil_image_resource. The NITF 2.x file format does support multiple images per file and you can use this API to access each and every one of them.

Note: By default, the first image is always used. If you don't call this function at all, then you will only see the first image in a given file.

Definition at line 189 of file vil_nitf2_image.cxx.

unsigned int vil_nitf2_image::size_block_i ( ) const [virtual]

Block size in columns.

Implements vil_blocked_image_resource.

Definition at line 444 of file vil_nitf2_image.cxx.

unsigned int vil_nitf2_image::size_block_j ( ) const [virtual]

Block size in rows.

Implements vil_blocked_image_resource.

Definition at line 449 of file vil_nitf2_image.cxx.

vil_streampos vil_nitf2_image::size_to ( vil_nitf2_header::section_type  sec,
vil_nitf2_header::portion_type  por,
int  index 
) const [protected]

Definition at line 83 of file vil_nitf2_image.cxx.

bool vil_blocked_image_resource::trim_border_blocks ( unsigned  i0,
unsigned  ni,
unsigned  j0,
unsigned  nj,
unsigned  start_block_i,
unsigned  start_block_j,
vcl_vector< vcl_vector< vil_image_view_base_sptr > > &  blocks 
) const [protected, inherited]

Definition at line 168 of file vil_blocked_image_resource.cxx.

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.


Friends And Related Function Documentation

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.

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:
kernelshould 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.

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:
kernelshould 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]

Load from a stream.

Won't use plugins.

Definition at line 19 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 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.

Note:
The output will be a shallow copy of the input, so changing the pixel values of one may change the pixel value of the other. Thanks to the magic of smart pointers, the output will remain valid even if you destroy the input. When you wrap 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 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_blocked_image_resource > [friend, inherited]

Definition at line 99 of file vil_blocked_image_resource.h.

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.


Member Data Documentation

unsigned int vil_nitf2_image::m_current_image_index [protected]

Definition at line 222 of file vil_nitf2_image.h.

vcl_vector< vil_nitf2_des* > vil_nitf2_image::m_des [protected]

Definition at line 218 of file vil_nitf2_image.h.

Definition at line 212 of file vil_nitf2_image.h.

Definition at line 214 of file vil_nitf2_image.h.

Definition at line 221 of file vil_nitf2_image.h.

vcl_atomic_count vil_image_resource::reference_count_ [protected, inherited]

Definition at line 114 of file vil_image_resource.h.

vil_image_view_base_sptr(* vil_nitf2_image::s_decode_jpeg_2000)(vil_stream *vs, unsigned i0, unsigned ni, unsigned j0, unsigned nj, double i_factor, double j_factor)=0 [static]

All instances of vil_nitf2_image will use s_decode_jpeg_2000() to decode JPEG 2000 streams if you set the function.

If unset, then the library will not be able to read JPEG 2000 compressed NITF files.

Definition at line 171 of file vil_nitf2_image.h.


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