Image |
Overview
Image contains a Matrix object, along with some additional spatial information. Its main purpose is to make possible a matrix able to be placed in a 2 dimensional space. Map projection information is also added to handle various types of Geographic information data.
Spatial information is automatically taken care of in all kind of Image object operations and functions, hence the user does not have to worry about it.
An image object has a full access to all class functions of matrix, as well as its own class functions.
An image can have a flag_null, and its value can be 0 (off) or 1 (on). This makes possible to omit some data, e.g. background data, when processing an image. When flag_null = 0, there is no omission of nulldata.
Member data
Name | Data type | Meaning |
id | int | ID of an image |
matrix | Matrix | a Matrix object |
lower_left | Pt2D | coordinate of lower left corner of an image |
upper_right | Pt2D | coordinate of upper right corner of an image |
projection | Projection | map projection of an image |
Operator
See details in operator section.
Construction function
{Image} ret = IMAGE([{int} argm1, {int} argm2, {double} argm3, {double} argm4, {double} argm5, {double} argm6, {Projection} argm7])
argm1 = no of row (default = 0)
argm2 = no of column (default = 0)
argm3 = x coordinate (lower left) (default = 0)
argm4 = y coordinate (lower left) (default = 0)
argm5 = x coordinate (upper right) (default = 0)
argm6 = y coordinate (upper right) (default = 0)
argm7 = map projection (default = default of Projection())
Example:
->Img = Image() | an empty image |
->Img = Image(100,200)
|
an image with 100 rows and 200 columns,
lower left = (0,0) upper right = (200,100) Projection = default value of function Projection() |
Lfunction
object({int} argm1, {int} argm2) = {double} left-value
argm1 = row index
argm2 = column index
object.ID() = {int} left-value
object.LOWER_LEFT() = {Pt2D} left-value
object.UPPER_RIGHT() = {Pt2D} left-value
object.MATRIX() = {Matrix} left-value
object.PROJ() = {Projection} left-value
object.FLAG_NULL() = {bool} left-value
object.NULLDATA() = {double} left-value
Example:
->Img(10,20) = 999 | set value of element at row 10, column 20 |
->Img.lower_left() = Pt2D(10,200) | set lower left point coordinate |
->Img.upper_right() = Pt2D(100.536 ,2000.500) | set upper right point coordinate |
->P = Projection()
->P.setUTM(47) ->Img.projection() = P |
set a particular map projection |
->A = [ 1 2 3; 4 5 6;
7 8 9]
->Img.matrix() = A
|
change content of matrix to
matrix "A"
Notice that coordinates of the two corner points remain the same, while size of Img changes to 3 rows and 3 columns, according to the size of "A" |
* for class IMAGE_INT, IMAGE_SHT, and IMAGE_UCH only
** for class IMAGE_UCH only
*** for class IMAGE, IMAFE_FLT, IMAGE_INT, and IMAGE_SHT only
**** for class IMAGE only
***** for class IMAGE and IMAGE_FLT only
****** for class IMAGE_SHT only
******* for class IMAGE_FLT only