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

They can either be local or hosted on an Image Web Server. Either way, you just pass in the file path or url (eg. "ecwp://www.earthetc.com/images/australia/Sydney.ecw") to the ctor. The call get_copy_view() to get the image data that you want. The class efficiently handles reading large images (Terrabytes) -- and can read image portions without loading the whole file into memory.
Because the source image can be really big, it is possible (through the get_copy_view() API) to ask for more data than you can handle in memory -- or more than you download for the remote case. That is why the setMaxImageDimension() guard is in place. You can set a max image dimension for both remote and local files (different values for each). Then if you call get_copy_view() asking for an image that is too big, get_copy_view() will scale down the image to the max dimension you specified. It does this silently -- perhaps we could/should change this?
Writing not currently supported.
Note that, in order to use this class, you need to use cmake to cofigure VXL to link against Er Mapper's freely available ECW JPEG 2000 SDK (http://ermapper.com/downloads/sdks.aspx#16).
Definition at line 47 of file vil_j2k_image.h.
Public Member Functions | |
| vil_j2k_image (const vcl_string &fileOrUrl) | |
| vil_j2k_image (vil_stream *is) | |
| Read a jpeg 2000 image from a stream containing either a raw j2k codestream or a jp2 file stream. | |
| ~vil_j2k_image () | |
| virtual unsigned | nplanes () const |
| Dimensions: planes x width x height x components. | |
| 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 bool | get_property (char const *, void *=0) const |
| Extra property information. | |
| virtual bool | put_view (const vil_image_view_base &, unsigned, unsigned) |
| Put the data in this view back into the image source. | |
| 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_decimated (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_by_size (unsigned i0, unsigned ni, unsigned j0, unsigned nj, unsigned int output_width, unsigned int output_height) const |
| vil_image_view_base_sptr | get_copy_view () const |
| Create a read/write view of a copy of all the data. | |
| bool | is_valid () const |
| Call this after construction to see if you can get valid data from me. | |
| void | setMaxImageDimension (unsigned int widthOrHeight, bool remote=false) |
| When calling get_copy_view(), the function will scale down the output image_view so that neither dimension (x or y) is greater than widthOrHeight. | |
| void | unsetMaxImageDimension (bool remote=false) |
| Call this if you don't want get_copy_view() to do size checking. | |
| 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. | |
| 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. | |
Static Public Member Functions | |
| 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) |
| Static function that can be used to decode a JPEG2000 codestream or file (jp2 file). | |
| static vil_image_view_base_sptr | s_decode_jpeg_2000_by_size (vil_stream *vs, unsigned i0, unsigned ni, unsigned j0, unsigned nj, unsigned int output_width, unsigned int output_height) |
Protected Member Functions | |
| void | ref () |
| void | unref () |
Protected Attributes | |
| CNCSFile * | mFileResource |
| unsigned int | mMaxLocalDimension |
| unsigned int | mMaxRemoteDimension |
| Same as. | |
| bool | mRemoteFile |
| file is remote | |
| int | 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) |
| 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. | |
|
|
Definition at line 96 of file vil_j2k_image.cxx. |
|
|
Read a jpeg 2000 image from a stream containing either a raw j2k codestream or a jp2 file stream. is' current position needs to be pointing at the beginning of one of these two things. In other words, the beginning of the stream must contain one of the two signatures:
Note that some references state that jp2 files start with ( 00 00 00 0C 6A 50 1A 1A 0D 0A 87 0A ) [note the 1A 1A difference]. I believe this was changed between the last draft and the final version of ISO/IEC 155444-1 (JPEG standard). I have never seen a real jp2 file with this old signature (including the official jpeg conformance test files) also note: Don't use is while I'm trying to use it... it'll screw us both up. Definition at line 115 of file vil_j2k_image.cxx. |
|
|
Definition at line 132 of file vil_j2k_image.cxx. |
|
|
Return a string describing the file format. Only file images have a format, others return 0 Reimplemented in vil_bmp_image, vil_dicom_image, vil_iris_generic_image, vil_jpeg_image, vil_mit_image, vil_nitf2_image, vil_png_image, vil_pnm_image, vil_pyramid_image_list, vil_ras_image, vil_tiff_image, vil_tiff_pyramid_resource, vil_viff_image, and vil_pyramid_image_resource. Definition at line 100 of file vil_image_resource.h. |
|
|
Create a read/write view of a copy of all the data.
Reimplemented from vil_image_resource. Definition at line 99 of file vil_j2k_image.h. |
|
||||||||||||||||||||
|
Create a read/write view of a copy of this data.
Implements vil_image_resource. Definition at line 278 of file vil_j2k_image.cxx. |
|
||||||||||||||||||||||||||||
|
Definition at line 164 of file vil_j2k_image.cxx. |
|
||||||||||||||||||||||||||||
|
Definition at line 180 of file vil_j2k_image.cxx. |
|
||||||||||||
|
Extra property information.
Implements vil_image_resource. Definition at line 79 of file vil_j2k_image.h. |
|
|
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. |
|
|
Call this after construction to see if you can get valid data from me. If this returns false, then this image is of no use to you Definition at line 105 of file vil_j2k_image.h. |
|
|
Dimensions: Planes x ni x nj. The number of pixels in each row. Implements vil_image_resource. Definition at line 145 of file vil_j2k_image.cxx. |
|
|
Dimensions: Planes x ni x nj. The number of pixels in each column. Implements vil_image_resource. Definition at line 151 of file vil_j2k_image.cxx. |
|
|
Dimensions: planes x width x height x components.
Implements vil_image_resource. Definition at line 139 of file vil_j2k_image.cxx. |
|
|
Pixel Format. A standard RGB RGB RGB of chars image has pixel_format() == VIL_PIXEL_FORMAT_BYTE Implements vil_image_resource. Definition at line 157 of file vil_j2k_image.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_image_resource. Definition at line 81 of file vil_j2k_image.h. |
|
|
Definition at line 109 of file vil_image_resource.h. |
|
||||||||||||||||||||||||||||||||
|
Static function that can be used to decode a JPEG2000 codestream or file (jp2 file). The stream must start at vs' current position. Definition at line 301 of file vil_j2k_image.cxx. |
|
||||||||||||||||||||||||||||||||
|
Definition at line 313 of file vil_j2k_image.cxx. |
|
||||||||||||
|
When calling get_copy_view(), the function will scale down the output image_view so that neither dimension (x or y) is greater than widthOrHeight. This feature is here to protect you in the case that your code asks for an excessively large image that will crash your program. You can turn this checking off with
Definition at line 292 of file vil_j2k_image.cxx. |
|
|
Definition at line 110 of file vil_image_resource.h. |
|
|
Call this if you don't want get_copy_view() to do size checking. Be warned that jpeg 2000 codestreams can be really big, so you could cause a program crash. Definition at line 286 of file vil_j2k_image.cxx. |
|
||||||||||||||||
|
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.
|
|
|
Load an image resource object from a file.
Definition at line 52 of file vil_load.cxx. |
|
||||||||||||||||||||||||||||
|
Make a new vil_image_resource, writing to stream "os", size ni x nj, copying pixel format etc from "prototype".
|
|
||||||||||||||||||||||||||||
|
Make a new vil_image_resource, writing to file "filename", size ni x nj, copying pixel format etc from "prototype".
|
|
||||||||||||||||||||||||
|
Make a new vil_image_resource, writing to stream "os", size ni x nj, copying pixel format etc from "prototype".
Definition at line 141 of file vil_new.cxx. |
|
||||||||||||||||||||||||||||
|
Make a new image.
Definition at line 122 of file vil_new.cxx. |
|
||||||||||||||||||||||||
|
Make a new vil_image_resource, writing to file "filename", size ni x nj, copying pixel format etc from "prototype".
Definition at line 103 of file vil_new.cxx. |
|
||||||||||||||||||||||||||||
|
Make a new image.
Definition at line 76 of file vil_new.cxx. |
|
||||||||||||||||
|
Make a new image, similar format to the prototype.
Definition at line 68 of file vil_new.cxx. |
|
||||||||||||
|
Save vil_image_resource to file, deducing format from filename.
|
|
||||||||||||||||
|
Send vil_image_resource to disk.
|
|
|
Definition at line 108 of file vil_image_resource.h. |
|
|
Definition at line 135 of file vil_j2k_image.h. |
|
|
Definition at line 141 of file vil_j2k_image.h. |
|
|
Same as.
Definition at line 146 of file vil_j2k_image.h. |
|
|
file is remote
Definition at line 148 of file vil_j2k_image.h. |
|
|
Definition at line 113 of file vil_image_resource.h. |
1.4.4