Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | Private Attributes | Friends | Related Functions | List of all members
vil_tiff_image Class Reference

Generic image interface for image TIFF image files (could have multiple images). More...

#include <vil_tiff.h>

Inheritance diagram for vil_tiff_image:
Inheritance graph
[legend]

Public Types

enum  compression_methods {
  NONE = 1, LZW = 5, OJPEG = 6, JPEG = 7,
  PACKBITS = 32773, THUNDERSCAN = 32809, PIXARFILM =32908, PIXARLOG = 32909,
  DEFLATE = 32946, ADOBE_DEFLATE = 8, JP2000 = 34712, LZMA = 34925
}
 

Public Member Functions

 vil_tiff_image (tif_smart_ptr const &tif, vil_tiff_header *th, const unsigned nimages=1)
 
 ~vil_tiff_image () override
 
unsigned nplanes () const override
 Dimensions: planes x width x height x components. More...
 
unsigned ni () const override
 Dimensions: Planes x ni x nj. More...
 
unsigned nj () const override
 Dimensions: Planes x ni x nj. More...
 
enum vil_pixel_format pixel_format () const override
 Pixel Format. More...
 
char const * file_format () const override
 returns "tiff". More...
 
unsigned size_block_i () const override
 Block size in columns (must be a multiple of 16). More...
 
unsigned size_block_j () const override
 Block size in rows (must be a multiple of 16). More...
 
unsigned n_block_i () const override
 Number of blocks in image width. More...
 
unsigned n_block_j () const override
 Number of blocks in image height. More...
 
vil_image_view_base_sptr get_block (unsigned block_index_i, unsigned block_index_j) const override
 Block access. More...
 
bool put_block (unsigned block_index_i, unsigned block_index_j, const vil_image_view_base &blk) override
 put the block into the resource at the indicated location. More...
 
bool put_view (const vil_image_view_base &im, unsigned i0, unsigned j0) override
 Put the data in this view back into the image source. More...
 
bool get_property (char const *tag, void *prop=nullptr) const override
 Return true if the property given in the first argument has been set. More...
 
bool set_compression_method (compression_methods cm)
 
bool set_compression_quality (int quality)
 
unsigned int nimages () const
 indicates the number of images in the tiff file. More...
 
unsigned int index () const
 the image index for multiple image files. More...
 
void set_index (const unsigned int index)
 point to a particular image in the file. More...
 
tif_smart_ptr const & tiff () const
 Get a smart pointer to opentiff object. More...
 
vil_image_view_base_sptr get_copy_view (unsigned i0, unsigned n_i, unsigned j0, unsigned n_j) const override
 Create a read/write view of a copy of this data. More...
 
vil_image_view_base_sptr get_copy_view () const
 Create a read/write view of a copy of all the data. More...
 
virtual bool put_view (const vil_image_view_base &im)
 Put the data in this view back into the image source at the origin. More...
 
virtual bool get_blocks (unsigned start_block_i, unsigned end_block_i, unsigned start_block_j, unsigned end_block_j, std::vector< std::vector< vil_image_view_base_sptr > > &blocks) const
 the multiple blocks are in col row order, i.e. blocks[i][j]. More...
 
virtual bool put_blocks (unsigned start_block_i, unsigned end_block_i, unsigned start_block_j, unsigned end_block_j, std::vector< std::vector< vil_image_view_base_sptr > > const &blocks)
 put multiple blocks in raster order, i.e., blocks[i][j]. More...
 
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. More...
 
vil_image_view_base_sptr get_view () const
 Create a read/write view of all the data. More...
 
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. More...
 

Protected Member Functions

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. More...
 
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. More...
 
bool trim_border_blocks (unsigned i0, unsigned ni, unsigned j0, unsigned nj, unsigned start_block_i, unsigned start_block_j, std::vector< std::vector< vil_image_view_base_sptr > > &blocks) const
 
vil_image_view_base_sptr glue_blocks_together (const std::vector< std::vector< vil_image_view_base_sptr > > &blocks) const
 
void ref ()
 
void unref ()
 

Protected Attributes

vcl_atomic_count reference_count_
 

Private Member Functions

unsigned samples_per_block () const
 the number of samples in a block. More...
 
enum vil_pixel_format compute_pixel_format ()
 
void copy_byte_block (vxl_byte *data, const vxl_uint_32 nbytes, vil_memory_chunk_sptr &cnk) const
 Transfer data from block to memory chunk, row by row. More...
 
vil_image_view_base_sptr view_from_buffer (vil_pixel_format &fmt, vil_memory_chunk_sptr const &buf, unsigned samples_per_block, unsigned bits_per_sample) const
 convert a packed block to an expanded view. More...
 
vil_image_view_base_sptr fill_block_from_tile (vil_memory_chunk_sptr const &buf) const
 the key methods for decoding the file data. More...
 
vil_image_view_base_sptr fill_block_from_strip (vil_memory_chunk_sptr const &buf) const
 
bool put_block (unsigned bi, unsigned bj, unsigned i0, unsigned j0, const vil_image_view_base &im)
 
unsigned block_index (unsigned block_i, unsigned block_j) const
 
void pad_block_with_zeros (unsigned ioff, unsigned joff, unsigned iclip, unsigned jclip, unsigned bytes_per_pixel, vxl_byte *block_buf)
 fill out the block with leading zeros or trailing zeros if necessary. More...
 
void fill_block_from_view (unsigned bi, unsigned bj, unsigned i0, unsigned j0, unsigned ioff, unsigned joff, unsigned iclip, unsigned jclip, const vil_image_view_base &im, vxl_byte *&block_buf)
 fill the block with view data. More...
 
void bitpack_block (unsigned bytes_per_block, const vxl_byte *in_block_buf, vxl_byte *out_block_buf)
 
bool write_block_to_file (unsigned bi, unsigned bj, unsigned block_size_bytes, vxl_byte *block_buf)
 

Private Attributes

tif_smart_ptr t_
 the TIFF handle to the open resource file. More...
 
vil_tiff_headerh_
 the TIFF header information. More...
 
unsigned int index_
 the default image header index. More...
 
unsigned int nimages_
 number of images in the file. More...
 

Friends

class vil_tiff_file_format
 
class vil_tiff_pyramid_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. More...
 
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, std::ptrdiff_t k_lo, std::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. More...
 
vil_image_resource_sptr vil_clamp (const vil_image_resource_sptr &src, double low, double hi)
 Clamp an image resource between two values. More...
 
bool vil_copy_deep (const vil_image_resource_sptr &src, vil_image_resource_sptr &dest)
 Copy src to dest. More...
 
vil_image_resource_sptr vil_copy_deep (const vil_image_resource_sptr &src)
 Creates an in memory vil_image_resource and copies the src to it. More...
 
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. More...
 
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. More...
 
vil_image_resource_sptr vil_flip_lr (const vil_image_resource_sptr &src)
 Flip an image resource left to right. More...
 
vil_image_resource_sptr vil_flip_ud (const vil_image_resource_sptr &src)
 Flip an image resource left to right. More...
 
vil_image_resource_sptr vil_load_image_resource (char const *filename, bool verbose=true)
 Load an image resource object from a file. More...
 
vil_image_resource_sptr vil_load_image_resource_raw (vil_stream *, bool verbose=true)
 Load from a stream. More...
 
vil_image_resource_sptr vil_load_image_resource_raw (char const *, bool verbose=true)
 Load an image resource object from a file. More...
 
vil_image_resource_sptr vil_load_image_resource_plugin (char const *)
 Load from a filename with a plugin. More...
 
template<class sumT >
bool vil_math_mean_and_variance (sumT &mean, sumT &var, const vil_image_resource_sptr im, const vil_image_view< bool > &mask, unsigned p)
 Mean and variance of masked elements in plane p for vil_image_resource. More...
 
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. More...
 
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. More...
 
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. More...
 
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". More...
 
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. More...
 
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". More...
 
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=nullptr)
 Make a new vil_image_resource, writing to file "filename", size ni x nj, copying pixel format etc from "prototype". More...
 
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=nullptr)
 Make a new vil_image_resource, writing to stream "os", size ni x nj, copying pixel format etc from "prototype". More...
 
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. More...
 
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. More...
 
vil_image_resource_sptr vil_plane (const vil_image_resource_sptr &src, unsigned p)
 Return a specific plane of an image. More...
 
bool vil_save_image_resource (const vil_image_resource_sptr &ir, char const *filename, char const *file_format)
 Send vil_image_resource to disk. More...
 
bool vil_save_image_resource (const vil_image_resource_sptr &ir, char const *filename)
 Save vil_image_resource to file, deducing format from filename. More...
 
vil_image_resource_sptr vil_transpose (const vil_image_resource_sptr &src)
 Transpose an image. More...
 

Detailed Description

Generic image interface for image TIFF image files (could have multiple images).

Definition at line 149 of file vil_tiff.h.

Member Enumeration Documentation

◆ compression_methods

Enumerator
NONE 
LZW 
OJPEG 
JPEG 
PACKBITS 
THUNDERSCAN 
PIXARFILM 
PIXARLOG 
DEFLATE 
ADOBE_DEFLATE 
JP2000 
LZMA 

Definition at line 153 of file vil_tiff.h.

Constructor & Destructor Documentation

◆ vil_tiff_image()

vil_tiff_image::vil_tiff_image ( tif_smart_ptr const &  tif,
vil_tiff_header th,
const unsigned  nimages = 1 
)

Definition at line 379 of file vil_tiff.cxx.

◆ ~vil_tiff_image()

vil_tiff_image::~vil_tiff_image ( )
override

Definition at line 456 of file vil_tiff.cxx.

Member Function Documentation

◆ bitpack_block()

void vil_tiff_image::bitpack_block ( unsigned  bytes_per_block,
const vxl_byte *  in_block_buf,
vxl_byte *  out_block_buf 
)
private

Definition at line 1106 of file vil_tiff.cxx.

◆ block_i_offset()

bool vil_blocked_image_resource::block_i_offset ( unsigned  block_i,
unsigned  i,
unsigned &  i_offset 
) const
protectedinherited

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

Definition at line 134 of file vil_blocked_image_resource.cxx.

◆ block_index()

unsigned vil_tiff_image::block_index ( unsigned  block_i,
unsigned  block_j 
) const
private

Definition at line 639 of file vil_tiff.cxx.

◆ block_j_offset()

bool vil_blocked_image_resource::block_j_offset ( unsigned  block_j,
unsigned  j,
unsigned &  j_offset 
) const
protectedinherited

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

Definition at line 149 of file vil_blocked_image_resource.cxx.

◆ compute_pixel_format()

enum vil_pixel_format vil_tiff_image::compute_pixel_format ( )
private

◆ copy_byte_block()

void vil_tiff_image::copy_byte_block ( vxl_byte *  data,
const vxl_uint_32  nbytes,
vil_memory_chunk_sptr cnk 
) const
private

Transfer data from block to memory chunk, row by row.

Since view and block are the same we can just blast across

Definition at line 655 of file vil_tiff.cxx.

◆ file_format()

char const * vil_tiff_image::file_format ( ) const
overridevirtual

returns "tiff".

Reimplemented from vil_image_resource.

Definition at line 464 of file vil_tiff.cxx.

◆ fill_block()

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
protectedinherited

◆ fill_block_from_strip()

vil_image_view_base_sptr vil_tiff_image::fill_block_from_strip ( vil_memory_chunk_sptr const &  buf) const
private

Definition at line 884 of file vil_tiff.cxx.

◆ fill_block_from_tile()

vil_image_view_base_sptr vil_tiff_image::fill_block_from_tile ( vil_memory_chunk_sptr const &  buf) const
private

the key methods for decoding the file data.

Definition at line 864 of file vil_tiff.cxx.

◆ fill_block_from_view()

void vil_tiff_image::fill_block_from_view ( unsigned  bi,
unsigned  bj,
unsigned  i0,
unsigned  j0,
unsigned  ioff,
unsigned  joff,
unsigned  iclip,
unsigned  jclip,
const vil_image_view_base im,
vxl_byte *&  block_buf 
)
private

fill the block with view data.

Definition at line 1003 of file vil_tiff.cxx.

◆ get_block()

vil_image_view_base_sptr vil_tiff_image::get_block ( unsigned  block_index_i,
unsigned  block_index_j 
) const
overridevirtual

Block access.

Implements vil_blocked_image_resource.

Definition at line 710 of file vil_tiff.cxx.

◆ get_blocks()

bool vil_blocked_image_resource::get_blocks ( unsigned  start_block_i,
unsigned  end_block_i,
unsigned  start_block_j,
unsigned  end_block_j,
std::vector< std::vector< vil_image_view_base_sptr > > &  blocks 
) const
virtualinherited

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

Definition at line 35 of file vil_blocked_image_resource.cxx.

◆ get_copy_view() [1/2]

vil_image_view_base_sptr vil_blocked_image_resource::get_copy_view ( unsigned  i0,
unsigned  n_i,
unsigned  j0,
unsigned  n_j 
) const
overridevirtualinherited

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.

Implements vil_image_resource.

Definition at line 238 of file vil_blocked_image_resource.cxx.

◆ get_copy_view() [2/2]

vil_image_view_base_sptr vil_image_resource::get_copy_view ( ) const
inlineinherited

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

Definition at line 80 of file vil_image_resource.h.

◆ get_property()

bool vil_tiff_image::get_property ( char const *  tag,
void *  prop = nullptr 
) const
overridevirtual

Return true if the property given in the first argument has been set.

currently defined: "quantisation_depth" - number of relevant bits per pixel "size_block_i" and "size_block_j" - block dimensions

Implements vil_blocked_image_resource.

Definition at line 385 of file vil_tiff.cxx.

◆ get_view() [1/2]

virtual vil_image_view_base_sptr vil_image_resource::get_view ( unsigned  i0,
unsigned  n_i,
unsigned  j0,
unsigned  n_j 
) const
inlinevirtualinherited

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_clamp_image_resource, vil_flip_lr_image_resource, vil_decimate_image_resource, vil_dicom_image, vil_crop_image_resource, and vil_transpose_image_resource.

Definition at line 64 of file vil_image_resource.h.

◆ get_view() [2/2]

vil_image_view_base_sptr vil_image_resource::get_view ( ) const
inlineinherited

Create a read/write view of all the data.

Definition at line 69 of file vil_image_resource.h.

◆ glue_blocks_together()

vil_image_view_base_sptr vil_blocked_image_resource::glue_blocks_together ( const std::vector< std::vector< vil_image_view_base_sptr > > &  blocks) const
protectedinherited

Definition at line 70 of file vil_blocked_image_resource.cxx.

◆ index()

unsigned int vil_tiff_image::index ( ) const
inline

the image index for multiple image files.

Definition at line 237 of file vil_tiff.h.

◆ n_block_i()

unsigned vil_tiff_image::n_block_i ( ) const
overridevirtual

Number of blocks in image width.

Reimplemented from vil_blocked_image_resource.

Definition at line 621 of file vil_tiff.cxx.

◆ n_block_j()

unsigned vil_tiff_image::n_block_j ( ) const
overridevirtual

Number of blocks in image height.

Reimplemented from vil_blocked_image_resource.

Definition at line 629 of file vil_tiff.cxx.

◆ ni()

unsigned vil_tiff_image::ni ( ) const
overridevirtual

Dimensions: Planes x ni x nj.

The number of pixels in each row.

Implements vil_blocked_image_resource.

Definition at line 579 of file vil_tiff.cxx.

◆ nimages()

unsigned int vil_tiff_image::nimages ( ) const
inline

indicates the number of images in the tiff file.

Definition at line 234 of file vil_tiff.h.

◆ nj()

unsigned vil_tiff_image::nj ( ) const
overridevirtual

Dimensions: Planes x ni x nj.

The number of pixels in each column.

Implements vil_blocked_image_resource.

Definition at line 586 of file vil_tiff.cxx.

◆ nplanes()

unsigned vil_tiff_image::nplanes ( ) const
overridevirtual

Dimensions: planes x width x height x components.

Implements vil_blocked_image_resource.

Definition at line 574 of file vil_tiff.cxx.

◆ pad_block_with_zeros()

void vil_tiff_image::pad_block_with_zeros ( unsigned  ioff,
unsigned  joff,
unsigned  iclip,
unsigned  jclip,
unsigned  bytes_per_pixel,
vxl_byte *  block_buf 
)
private

fill out the block with leading zeros or trailing zeros if necessary.

Definition at line 966 of file vil_tiff.cxx.

◆ pixel_format()

vil_pixel_format vil_tiff_image::pixel_format ( ) const
overridevirtual

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 451 of file vil_tiff.cxx.

◆ put_block() [1/2]

bool vil_tiff_image::put_block ( unsigned  block_index_i,
unsigned  block_index_j,
const vil_image_view_base view 
)
overridevirtual

put the block into the resource at the indicated location.

Implements vil_blocked_image_resource.

Definition at line 1227 of file vil_tiff.cxx.

◆ put_block() [2/2]

bool vil_tiff_image::put_block ( unsigned  bi,
unsigned  bj,
unsigned  i0,
unsigned  j0,
const vil_image_view_base im 
)
private

Definition at line 1148 of file vil_tiff.cxx.

◆ put_blocks()

bool vil_blocked_image_resource::put_blocks ( unsigned  start_block_i,
unsigned  end_block_i,
unsigned  start_block_j,
unsigned  end_block_j,
std::vector< std::vector< vil_image_view_base_sptr > > const &  blocks 
)
virtualinherited

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

Definition at line 56 of file vil_blocked_image_resource.cxx.

◆ put_view() [1/2]

virtual bool vil_image_resource::put_view ( const vil_image_view_base im)
inlinevirtualinherited

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.

◆ put_view() [2/2]

bool vil_tiff_image::put_view ( const vil_image_view_base im,
unsigned  i0,
unsigned  j0 
)
overridevirtual

Put the data in this view back into the image source.

Implements vil_blocked_image_resource.

Definition at line 1205 of file vil_tiff.cxx.

◆ ref()

void vil_image_resource::ref ( )
inlineprotectedinherited

Definition at line 110 of file vil_image_resource.h.

◆ samples_per_block()

unsigned vil_tiff_image::samples_per_block ( ) const
private

the number of samples in a block.

Definition at line 645 of file vil_tiff.cxx.

◆ set_compression_method()

bool vil_tiff_image::set_compression_method ( compression_methods  cm)

Definition at line 414 of file vil_tiff.cxx.

◆ set_compression_quality()

bool vil_tiff_image::set_compression_quality ( int  quality)

Definition at line 426 of file vil_tiff.cxx.

◆ set_index()

void vil_tiff_image::set_index ( const unsigned int  index)
inline

point to a particular image in the file.

Definition at line 239 of file vil_tiff.h.

◆ size_block_i()

unsigned vil_tiff_image::size_block_i ( ) const
overridevirtual

Block size in columns (must be a multiple of 16).

block size in cols.

Implements vil_blocked_image_resource.

Definition at line 594 of file vil_tiff.cxx.

◆ size_block_j()

unsigned vil_tiff_image::size_block_j ( ) const
overridevirtual

Block size in rows (must be a multiple of 16).

block size in rows.

For strips, the number of rows per strip can be larger than the image length but data is only valid for the number of actual image rows. For images with multiple strips, the last strip may be cropped by the actual number of image rows.

Implements vil_blocked_image_resource.

Definition at line 608 of file vil_tiff.cxx.

◆ tiff()

tif_smart_ptr const& vil_tiff_image::tiff ( ) const
inline

Get a smart pointer to opentiff object.

Definition at line 242 of file vil_tiff.h.

◆ trim_border_blocks()

bool vil_blocked_image_resource::trim_border_blocks ( unsigned  i0,
unsigned  ni,
unsigned  j0,
unsigned  nj,
unsigned  start_block_i,
unsigned  start_block_j,
std::vector< std::vector< vil_image_view_base_sptr > > &  blocks 
) const
protectedinherited

Definition at line 166 of file vil_blocked_image_resource.cxx.

◆ unref()

void vil_image_resource::unref ( )
inlineprotectedinherited

Definition at line 111 of file vil_image_resource.h.

◆ view_fits()

bool vil_image_resource::view_fits ( const vil_image_view_base im,
unsigned  i0,
unsigned  j0 
)
virtualinherited

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 27 of file vil_image_resource.cxx.

◆ view_from_buffer()

vil_image_view_base_sptr vil_tiff_image::view_from_buffer ( vil_pixel_format fmt,
vil_memory_chunk_sptr const &  buf,
unsigned  samples_per_block,
unsigned  bits_per_sample 
) const
private

convert a packed block to an expanded view.

map the input buffer into the view.

Note strips won't trigger byte alignment, because they are already aligned at this point.

Definition at line 667 of file vil_tiff.cxx.

◆ write_block_to_file()

bool vil_tiff_image::write_block_to_file ( unsigned  bi,
unsigned  bj,
unsigned  block_size_bytes,
vxl_byte *  block_buf 
)
private

Definition at line 1090 of file vil_tiff.cxx.

Friends And Related Function Documentation

◆ vil_clamp()

vil_image_resource_sptr vil_clamp ( const vil_image_resource_sptr src,
double  low,
double  hi 
)
related

Clamp an image resource between two values.

Definition at line 22 of file vil_clamp.cxx.

◆ vil_convolve_1d()

template<class destT , class kernelT , class accumT >
vil_image_resource_sptr vil_convolve_1d ( const vil_image_resource_sptr src_im,
const destT  dt,
const kernelT *  kernel,
int  k_lo,
int  k_hi,
const accumT  ac,
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 406 of file vil_convolve_1d.h.

◆ vil_copy_deep() [1/2]

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 45 of file vil_copy.cxx.

◆ vil_copy_deep() [2/2]

vil_image_resource_sptr vil_copy_deep ( const vil_image_resource_sptr src)
related

Creates an in memory vil_image_resource and copies the src to it.

The size and pixel type of the return vil_image_resource is determined by src O(size)

Definition at line 89 of file vil_copy.cxx.

◆ vil_correlate_1d()

template<class destT , class kernelT , class accumT >
vil_image_resource_sptr vil_correlate_1d ( const vil_image_resource_sptr src_im,
const destT  dt,
const kernelT *  kernel,
std::ptrdiff_t  k_lo,
std::ptrdiff_t  k_hi,
const accumT  ac,
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 218 of file vil_correlate_1d.h.

◆ vil_crop()

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_decimate()

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_flip_lr()

vil_image_resource_sptr vil_flip_lr ( const vil_image_resource_sptr src)
related

Flip an image resource left to right.

Definition at line 14 of file vil_flip.cxx.

◆ vil_flip_ud()

vil_image_resource_sptr vil_flip_ud ( const vil_image_resource_sptr src)
related

Flip an image resource left to right.

Definition at line 121 of file vil_flip.cxx.

◆ vil_load_image_resource()

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

◆ vil_load_image_resource_plugin()

vil_image_resource_sptr vil_load_image_resource_plugin ( char const *  )
related

Load from a filename with a plugin.

Definition at line 80 of file vil_load.cxx.

◆ vil_load_image_resource_raw() [1/2]

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_load_image_resource_raw() [2/2]

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

◆ vil_math_mean_and_variance()

template<class sumT >
bool vil_math_mean_and_variance ( sumT &  mean,
sumT &  var,
const vil_image_resource_sptr  im,
const vil_image_view< bool > &  mask,
unsigned  p 
)
related

Mean and variance of masked elements in plane p for vil_image_resource.

Definition at line 380 of file vil_math.h.

◆ vil_new_image_resource() [1/8]

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

Definition at line 32 of file vil_new.cxx.

◆ vil_new_image_resource() [2/8]

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_new_image_resource() [3/8]

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_new_image_resource() [4/8]

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 = nullptr 
)
related

Make a new vil_image_resource, writing to file "filename", size ni x nj, copying pixel format etc from "prototype".

◆ vil_new_image_resource() [5/8]

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 = nullptr 
)
related

Make a new vil_image_resource, writing to stream "os", size ni x nj, copying pixel format etc from "prototype".

◆ vil_new_image_resource() [6/8]

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_new_image_resource() [7/8]

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_new_image_resource() [8/8]

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_new_image_resource_interleaved()

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.

Definition at line 44 of file vil_new.cxx.

◆ vil_new_image_resource_of_view()

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

Definition at line 62 of file vil_new.cxx.

◆ vil_plane()

vil_image_resource_sptr vil_plane ( const vil_image_resource_sptr src,
unsigned  p 
)
related

Return a specific plane of an image.

Definition at line 19 of file vil_plane.cxx.

◆ vil_save_image_resource() [1/2]

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 129 of file vil_save.cxx.

◆ vil_save_image_resource() [2/2]

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 148 of file vil_save.cxx.

◆ vil_tiff_file_format

friend class vil_tiff_file_format
friend

Definition at line 151 of file vil_tiff.h.

◆ vil_tiff_pyramid_resource

friend class vil_tiff_pyramid_resource
friend

Definition at line 231 of file vil_tiff.h.

◆ vil_transpose()

vil_image_resource_sptr vil_transpose ( const vil_image_resource_sptr src)
related

Transpose an image.

Definition at line 14 of file vil_transpose.cxx.

Member Data Documentation

◆ h_

vil_tiff_header* vil_tiff_image::h_
private

the TIFF header information.

Definition at line 251 of file vil_tiff.h.

◆ index_

unsigned int vil_tiff_image::index_
private

the default image header index.

Definition at line 253 of file vil_tiff.h.

◆ nimages_

unsigned int vil_tiff_image::nimages_
private

number of images in the file.

Definition at line 255 of file vil_tiff.h.

◆ reference_count_

vcl_atomic_count vil_image_resource::reference_count_
protectedinherited

Definition at line 114 of file vil_image_resource.h.

◆ t_

tif_smart_ptr vil_tiff_image::t_
private

the TIFF handle to the open resource file.

Definition at line 248 of file vil_tiff.h.


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