#include <vil_nitf2_image.h>
Inheritance diagram for vil_nitf2_image:

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 70 of file vil_nitf2_image.h.
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 the 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_header & | get_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 |
| 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. | |
| 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_subheader * | current_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_stream * | m_stream |
| unsigned int | m_current_image_index |
| int | 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. | |
| 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) |
| Load an image resource object from a file. | |
| 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. | |
|
|
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 137 of file vil_nitf2_image.cxx. |
|
||||||||||||
|
Definition at line 144 of file vil_nitf2_image.cxx. |
|
|
Definition at line 172 of file vil_nitf2_image.cxx. |
|
||||||||||||||||
|
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. |
|
||||||||||||||||
|
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. |
|
|
Definition at line 163 of file vil_nitf2_image.cxx. |
|
|
Definition at line 155 of file vil_nitf2_image.cxx. |
|
|
Definition at line 179 of file vil_nitf2_image.cxx. |
|
|
Definition at line 332 of file vil_nitf2_image.cxx. |
|
|
returns "nitf vM.N".
Reimplemented from vil_image_resource. Definition at line 314 of file vil_nitf2_image.cxx. |
|
|
Definition at line 309 of file vil_nitf2_image.cxx. |
|
||||||||||||||||||||||||
|
|
|
||||||||||||
|
Block access.
Implemented in vil_tiff_image, vil_blocked_image_facade, and vil_cached_image_resource. |
|
||||||||||||
|
Definition at line 633 of file vil_nitf2_image.cxx. |
|
||||||||||||
|
Definition at line 616 of file vil_nitf2_image.cxx. |
|
||||||||||||||||||||||||
|
the multiple blocks are in col row order, i.e. blocks[i][j].
Definition at line 37 of file vil_blocked_image_resource.cxx. |
|
|
Create a read/write view of a copy of all the data.
Reimplemented from vil_image_resource. Definition at line 125 of file vil_nitf2_image.h. |
|
||||||||||||||||||||
|
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.
Reimplemented from vil_blocked_image_resource. Definition at line 495 of file vil_nitf2_image.cxx. |
|
||||||||||||
|
Definition at line 120 of file vil_nitf2_image.h. |
|
||||||||||||||||||||||||||||
|
Definition at line 472 of file vil_nitf2_image.cxx. |
|
||||||||||||||||||||
|
Definition at line 516 of file vil_nitf2_image.cxx. |
|
|
Definition at line 144 of file vil_nitf2_image.h. |
|
|
Definition at line 142 of file vil_nitf2_image.h. |
|
|
Definition at line 140 of file vil_nitf2_image.h. |
|
||||||||||||||||
|
Definition at line 59 of file vil_nitf2_image.cxx. |
|
||||||||||||||||||||
|
Definition at line 197 of file vil_nitf2_image.cxx. |
|
||||||||||||
|
Extra property information.
Implements vil_blocked_image_resource. Definition at line 797 of file vil_nitf2_image.cxx. |
|
|
Definition at line 823 of file vil_nitf2_image.cxx. |
|
|
Create a read/write view of all the data.
Definition at line 68 of file vil_image_resource.h. |
|
||||||||||||||||||||
|
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.
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 63 of file vil_image_resource.h. |
|
|
Definition at line 72 of file vil_blocked_image_resource.cxx. |
|
|
Definition at line 462 of file vil_nitf2_image.cxx. |
|
|
Number of blocks in image width.
Reimplemented from vil_blocked_image_resource. Definition at line 438 of file vil_nitf2_image.cxx. |
|
|
Number of blocks in image height.
Reimplemented from vil_blocked_image_resource. Definition at line 443 of file vil_nitf2_image.cxx. |
|
|
Dimensions: Planes x ni x nj. The number of pixels in each row. Implements vil_blocked_image_resource. Definition at line 343 of file vil_nitf2_image.cxx. |
|
|
Definition at line 190 of file vil_nitf2_image.cxx. |
|
|
Dimensions: Planes x ni x nj. The number of pixels in each column. Implements vil_blocked_image_resource. Definition at line 357 of file vil_nitf2_image.cxx. |
|
|
return the image info the the current image.
Implements vil_blocked_image_resource. Definition at line 338 of file vil_nitf2_image.cxx. |
|
|
Definition at line 275 of file vil_nitf2_image.cxx. |
|
|
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 371 of file vil_nitf2_image.cxx. |
|
||||||||||||||||
|
put the block into the resource at the indicated location.
Implements vil_blocked_image_resource. Definition at line 131 of file vil_nitf2_image.h. |
|
||||||||||||||||||||||||
|
put multiple blocks in raster order, i.e. , blocks[i][j]. Definition at line 58 of file vil_blocked_image_resource.cxx. |
|
|
Put the data in this view back into the image source at the origin.
Definition at line 91 of file vil_image_resource.h. |
|
||||||||||||||||
|
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_blocked_image_resource. Definition at line 128 of file vil_nitf2_image.h. |
|
|
Definition at line 109 of file vil_image_resource.h. |
|
|
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 184 of file vil_nitf2_image.cxx. |
|
|
Block size in columns.
Implements vil_blocked_image_resource. Definition at line 428 of file vil_nitf2_image.cxx. |
|
|
Block size in rows.
Implements vil_blocked_image_resource. Definition at line 433 of file vil_nitf2_image.cxx. |
|
||||||||||||||||
|
Definition at line 80 of file vil_nitf2_image.cxx. |
|
||||||||||||||||||||||||||||||||
|
Definition at line 168 of file vil_blocked_image_resource.cxx. |
|
|
Definition at line 110 of file vil_image_resource.h. |
|
||||||||||||||||
|
Check that a view will fit into the data at the given offset. This includes checking that the pixel type is scalar. Definition at line 30 of file vil_image_resource.cxx. |
|
||||||||||||||||||||||||||||||||||||||||
|
Create an image_resource object which convolve kernel[x] x in [k_lo,k_hi] with srcT.
Definition at line 404 of file vil_convolve_1d.h. |
|
||||||||||||
|
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. |
|
||||||||||||||||||||||||||||||||||||||||
|
Create an image_resource object which correlate kernel[x] x in [k_lo,k_hi] with srcT.
Definition at line 214 of file vil_correlate_1d.h. |
|
||||||||||||||||||||||||
|
Crop to a region of src.
Definition at line 14 of file vil_crop.cxx. |
|
||||||||||||||||
|
decimate to a region of src.
|
|