| .TH IM_READMASK 3 "2 May 1991" |
| .SH NAME |
| im_create_dmask, im_create_imask, im_create_dmaskv, im_create_imaskv, |
| im_dup_dmask, im_dup_imask, im_free_dmask, |
| im_free_imask, im_print_imask, im_print_dmask, im_read_dmask, im_read_imask, |
| im_scale_dmask, im_write_dmask, im_write_imask \- operations on double or int |
| masks |
| .SH SYNOPSIS |
| #include <vips/vips.h> |
| |
| DOUBLEMASK *im_create_dmask( name, xs, ys ) |
| .br |
| char *name; |
| .br |
| int xs, ys; |
| |
| INTMASK *im_create_imask( name, xs, ys ) |
| .br |
| char *name; |
| .br |
| int xs, ys; |
| |
| DOUBLEMASK *im_create_dmaskv( name, xs, ys, ... ) |
| .br |
| char *name; |
| .br |
| int xs, ys; |
| |
| INTMASK *im_create_imaskv( name, xs, ys, ... ) |
| .br |
| char *name; |
| .br |
| int xs, ys; |
| |
| DOUBLEMASK *im_dup_dmask( m, name ) |
| .br |
| DOUBLEMASK *m; |
| .br |
| char *name; |
| |
| INTMASK *im_dup_imask( m, name ) |
| .br |
| INTMASK *m; |
| .br |
| char *name; |
| |
| void im_free_dmask( mask ) |
| .br |
| DOUBLEMASK *mask; |
| |
| void im_free_imask( mask ) |
| .br |
| INTMASK *mask; |
| |
| DOUBLEMASK *im_read_dmask( name ) |
| .br |
| char *name; |
| |
| INTMASK *im_read_imask( name ) |
| .br |
| char *name; |
| |
| void im_print_dmask( mask ) |
| .br |
| DOUBLEMASK *mask; |
| |
| void im_print_imask( mask ) |
| .br |
| INTMASK *mask; |
| |
| INTMASK im_scale_dmask( mask, name ) |
| .br |
| DOUBLEMASK *mask; |
| .br |
| char *name |
| |
| void im_norm_dmask( DOUBLEMASK *mask ); |
| |
| int im_write_imask( m ) |
| .br |
| INTMASK *m; |
| |
| int im_write_imask_name( m, name ) |
| .br |
| INTMASK *m; |
| .br |
| char *name; |
| |
| int im_write_dmask_name( m, name ) |
| .br |
| DOUBLEMASK *m; |
| .br |
| char *name; |
| |
| .SH DESCRIPTION |
| Masks are (see <vips/vips.h>): |
| |
| typedef struct { typedef struct { |
| int xsize; int xsize; |
| int ysize; int ysize; |
| int scale; double scale; |
| int offset; double offset; |
| int *coeff; double *coeff; |
| char *filename; char *filename; |
| } INTMASK ; } DOUBLEMASK ; |
| |
| By mask files have the following structure: |
| |
| x y [scale] [offset] |
| a11 a12 ... a1y |
| a21 a22 ... a2y] |
| ... ... ... ... |
| ax1 ax2 ... axy |
| |
| The mask sizes x and y are always integer whereas all the remaining coefficients |
| are either int for INTMASK and double for the DOUBLEMASK. All numbers are |
| written in ASCII, for convenience. scale and offset are |
| always optional. If missing, they default to 1 and 0 respectively. This laxity |
| makes mask files useful for matrix operations, see im_matinv(3), etc. |
| |
| im_create_dmask() |
| returns an DOUBLEMASK with the filename xsize and ysize set to name xs and ys |
| respectively. The function allocates memory for the coefficients which are |
| all initialised to zero. In case of error the function returns NULL. |
| |
| im_create_dmaskv() operates exactly as im_create_dmask(), except that the mask |
| is initialised by the parameters following the width and height. These |
| parameters must all be doubles. For example: |
| |
| DOUBLEMASK *m = im_create_dmaskv( "untitled", 3, 3, |
| 1.0, 0.0, 0.0, |
| 0.0, 1.0, 0.0, |
| 0.0, 0.0, 1.0 ); |
| |
| creates an identity matrix. |
| |
| im_create_imask() |
| returns an INTMASK with the filename xsize and ysize set to name xs and ys |
| respectively. The function allocates memory for the coefficients which are |
| all initialised to zero. In case of error the function returns NULL. |
| |
| im_create_imaskv() operates exactly as im_create_imask(), except that the mask |
| is initialised by the parameters following the width and height. These |
| parameters must all be ints. For example: |
| |
| INTMASK *m = im_create_imaskv( "untitled", 3, 3, |
| 1, 0, 0, |
| 0, 1, 0, |
| 0, 0, 1 ); |
| |
| creates an identity matrix. |
| |
| im_dup_dmask() |
| duplicates the DOUBLEMASK mask pointed by m and returns a pointer to the |
| new mask. The filename member of the returned mask is set to the entered |
| name. The function returns either a DOUBLEMASK pointer or NULL on error. |
| |
| im_dup_imask() |
| duplicates the INTMASK mask pointed by m and returns a pointer to the |
| new mask. The filename member of the returned mask is set to the entered |
| name. The function returns either an INTMASK pointer or NULL on error. |
| |
| im_free_dmask() |
| frees the memory allocated for the DOUBLEMASK mask. |
| |
| im_free_imask() |
| frees the memory allocated for the INTMASK mask. |
| |
| im_print_dmask() |
| prints at the sterr the DOUBLEMASK pointed by mask. |
| |
| im_print_imask() |
| prints at the sterr the INTMASK pointed by mask. |
| |
| im_read_dmask() |
| opens the argument name and reads the mask into a DOUBLEMASK structure. |
| The function returns a pointer to an DOUBLEMASK or NULL on error. |
| |
| im_read_imask() |
| opens the argument name and reads the mask into a INTMASK structure. |
| If the input |
| file has non-integer coefficients then the function im_read_dmask() should |
| be used instead. There is a built-in checking for all mask members. |
| If the mask has coefficients which are integers or they are floats |
| with the decimal part equal to zero, the function reads the mask |
| properly and puts the resultant coefficients in a valid INTMASK. |
| The function returns a pointer to an INTMASK or NULL on error. |
| |
| im_scale_dmask() |
| returns an INTMASK of the DOUBLE MASK m. The maximum value of the DOUBLEMASK |
| is scaled to 100 in the returned mask. The scale member of the INTMASK is |
| scaled accordingly to the scale member of m. |
| The function returns a pointer to an INTMASK or NULL on error. |
| |
| .B im_norm_dmask(3) |
| applies the scale and offset members of |
| .I mask |
| to each of its coefficients, and then sets them to 1.0 and zero respectively. |
| |
| im_write_imask() |
| writes the INTMASK pointed by m to the filename member of m. The function |
| checks whether the filename is valid and it expects only an INTMASK. |
| The function returns 0 on success and -1 on error. |
| For writing a DOUBLEMASK use im_write_dmask() instead. |
| |
| im_write_imask_name() |
| operates as im_write_imask(), but the mask is written to the named file. |
| |
| im_write_dmask() |
| writes the DOUBLEMASK pointed by m to the filename member of m. The function |
| checks whether the filename is valid and it expects only an DOUBLEMASK. |
| The mask is written in a file with the format given above. The function uses |
| fprintf with the conversion character %g, to write the non integer |
| mask coefficients. It returns 0 on success and -1 on error. |
| |
| im_write_dmask_name() |
| operates as im_write_dmask(), but the mask is written to the named file. |
| |
| .SH SEE ALSO |
| im_lindetect(3), im_compass(3), im_conv(3), im_matinv(3). |
| .SH COPYRIGHT |
| N. Dessipris |
| .SH AUTHOR |
| N. Dessipris \- 02/05/1991 |