VIA - Volumetric Image Analysis
VImage.h
1 /*
2  * $Id: VImage.h 726 2004-03-08 13:12:45Z lohmann $
3  *
4  * Definitions associated with images: their representation in files and
5  * in memory, and operations that can be performed with them.
6  */
7 
8 #ifndef V_VImage_h
9 #define V_VImage_h 1
10 
11 /*
12  * Copyright 1993, 1994 University of British Columbia
13  *
14  * Permission to use, copy, modify, distribute, and sell this software and its
15  * documentation for any purpose is hereby granted without fee, provided that
16  * the above copyright notice appears in all copies and that both that
17  * copyright notice and this permission notice appear in supporting
18  * documentation. UBC makes no representations about the suitability of this
19  * software for any purpose. It is provided "as is" without express or
20  * implied warranty.
21  *
22  * Author: Arthur Pope, UBC Laboratory for Computational Intelligence
23  */
24 
25 /* From the Vista library: */
26 #include "viaio/Vlib.h"
27 #include "viaio/file.h"
28 
29 /* From the standard C library: */
30 #include <stdio.h>
31 
32 /* For definition of pid_t: */
33 #include <sys/types.h>
34 
35 /* For portability: */
36 #include <X11/Xfuncproto.h>
37 
38 #ifdef __cplusplus
39 extern "C" {
40 #endif
41 
42 
43 /*
44  * The representation of an image in memory.
45  */
46 
47 /* Description of an image: */
48 typedef struct V_ImageRec {
49  int nbands; /* number of bands */
50  int nrows; /* number of rows */
51  int ncolumns; /* number of columns */
52  VRepnKind pixel_repn; /* representation of pixel values */
53  unsigned long flags; /* various flags */
54  VAttrList attributes; /* list of other image attributes */
55  VPointer data; /* array of image pixel values */
56  VPointer *row_index; /* ptr to first pixel of each row */
57  VPointer **band_index; /* ptr to first row of each band */
58  int nframes; /* number of motion frames */
59  int nviewpoints; /* number of camera viewpoints */
60  int ncolors; /* number of color channels */
61  int ncomponents; /* number of vector components */
62 } VImageRec;
63 
64 /* Codes for flags: */
65 enum {
66  VImageSingleAlloc = 0x01 /* one free() releases everything */
67 };
68 
69 
70 /*
71  * Macros for accessing image in memory.
72  */
73 
74 /* The number of bands, rows, columns, etc. in an image: */
75 #define VImageNBands(image) ((image)->nbands)
76 #define VImageNRows(image) ((image)->nrows)
77 #define VImageNColumns(image) ((image)->ncolumns)
78 #define VImageNFrames(image) ((image)->nframes)
79 #define VImageNViewpoints(image) ((image)->nviewpoints)
80 #define VImageNColors(image) ((image)->ncolors)
81 #define VImageNComponents(image) ((image)->ncomponents)
82 
83 /* An image's pixel representation: */
84 #define VPixelRepn(image) ((image)->pixel_repn)
85 
86 /* An image's pixel data: */
87 #define VImageData(image) ((image)->data)
88 
89 /* An image's list of attributes: */
90 #define VImageAttrList(image) ((image)->attributes)
91 
92 /* The number of pixels in an image: */
93 #define VImageNPixels(image) \
94  ((image)->nbands * (image)->nrows * (image)->ncolumns)
95 
96 /* The size, in bytes, of a pixel on the present architecture: */
97 #define VPixelSize(image) (VRepnSize ((image)->pixel_repn))
98 
99 /* The minimum size, in bits, needed to represent a pixel: */
100 #define VPixelPrecision(image) (VRepnPrecision ((image)->pixel_repn))
101 
102 /* The name of an image's pixel representation: */
103 #define VPixelRepnName(image) (VRepnName ((image)->pixel_repn))
104 
105 /* The minimum and maximum legal pixel values: */
106 #define VPixelMinValue(image) (VRepnMinValue ((image)->pixel_repn))
107 #define VPixelMaxValue(image) (VRepnMaxValue ((image)->pixel_repn))
108 
109 /* The size, in bytes, of an entire image on the present architecture: */
110 #define VImageSize(image) (VImageNPixels(image) * VPixelSize(image))
111 
112 /* A pointer to a specified pixel: */
113 #define VPixelPtr(image, band, row, column) \
114  ((VPointer) ((char *) ((image)->band_index[band][row]) + \
115  (column) * VPixelSize (image)))
116 
117 /* A specified pixel of a specified type: */
118 #define VPixel(image, band, row, column, type) \
119  (* ((type *) (image)->band_index[band][row] + (column)))
120 
121 /* A pointer to a three-dimensional array of pixels: */
122 #define VPixelArray(image, type) \
123  ((type ***) (image)->band_index)
124 
125 /* The band corresponding to a particular frame, viewpoint, etc.: */
126 #define VBandIndex(image, frame, viewpoint, color, component) \
127  (((((frame) * (image)->nviewpoints + (viewpoint)) * (image)->ncolors + \
128  (color)) * (image)->ncomponents) + (component))
129 
130 /* Test whether two images have the same representational range: */
131 #define VSameImageRange(image1, image2) \
132  ((image1)->nbands == (image2)->nbands && \
133  (image1)->nrows == (image2)->nrows && \
134  (image1)->ncolumns == (image2)->ncolumns && \
135  (image1)->pixel_repn == (image2)->pixel_repn)
136 
137 /* Test whether two images have the same size: */
138 #define VSameImageSize(image1, image2) \
139  ((image1)->nbands == (image2)->nbands && \
140  (image1)->nrows == (image2)->nrows && \
141  (image1)->ncolumns == (image2)->ncolumns)
142 
143 
144 /*
145  * Attributes used to represent an image.
146  */
147 
148 #define VColorInterpAttr "color_interp"
149 #define VComponentInterpAttr "component_interp"
150 #define VFrameInterpAttr "frame_interp"
151 #define VNBandsAttr "nbands"
152 #define VNColorsAttr "ncolors"
153 #define VNComponentsAttr "ncomponents"
154 #define VNFramesAttr "nframes"
155 #define VNViewpointsAttr "nviewpoints"
156 #define VPixelAspectRatioAttr "pixel_aspect_ratio"
157 #define VViewpointInterpAttr "viewpoint_interp"
158 
159 /* Values of band interpretation attributes: */
160 typedef enum {
161 
162  /* Used at all levels of the hierarchy (frame, viewpoint, color, ...) */
163  VBandInterpNone, /* no interpretation specified */
164  VBandInterpOther, /* unknown interpretation specified */
165 
166  /* Describing motion frames: */
167 
168  /* Describing camera viewpoints: */
169  VBandInterpStereoPair,
170 
171  /* Describing color channels: */
172  VBandInterpRGB,
173 
174  /* Describing vector components: */
175  VBandInterpComplex,
176  VBandInterpGradient,
177  VBandInterpIntensity,
178  VBandInterpOrientation
179 } VBandInterp;
180 
181 extern VDictEntry VBandInterpDict[];
182 
183 
184 /*
185  * Miscellaneous things.
186  */
187 
188 /* For specifying a band: */
189 typedef int VBand;
190 #define VAllBands -1 /* all bands */
191 
192 /* For specifying how to pad when convolving: */
193 typedef enum {
194  VConvolvePadNone, /* set border pixels to zero */
195  VConvolvePadZero, /* pad with zero */
196  VConvolvePadBorder, /* pad with border pixel values */
197  VConvolvePadWrap, /* pad with wrapped around values */
198  VConvolvePadTrim /* don't pad, trim destination image */
199 } VConvolvePadMethod;
200 
201 /* For specifying which type of image filtering is to be performed: */
202 typedef enum {
203  VFilterGaussian, /* 2D Gaussian smoothing */
204  VFilterGaussianDx, /* d / dX */
205  VFilterGaussianDy /* d / dY */
206 } VFilterKind;
207 
208 /* Keywords for representing kind of operation: */
209 typedef enum {
210 
211  /* Unary operations: */
212  VImageOpAbs,
213  VImageOpExp,
214  VImageOpLog,
215  VImageOpNot,
216  VImageOpSqrt,
217  VImageOpSquare,
218 
219  /* Binary (dyadic) operations: */
220  VImageOpAdd,
221  VImageOpAnd,
222  VImageOpDist,
223  VImageOpDiv,
224  VImageOpMax,
225  VImageOpMin,
226  VImageOpMult,
227  VImageOpOr,
228  VImageOpSub,
229  VImageOpXor
230 } VImageOpKind;
231 
232 
233 /*
234  * Declarations of library routines.
235  */
236 
237 /* From Adjust.c: */
238 
239 extern VImage VAdjustImage (
240 #if NeedFunctionPrototypes
241  VImage /* src */,
242  VImage /* dest */,
243  VBand /* band */,
244  double /* brightness */,
245  double /* contrast */
246 #endif
247 );
248 
249 /* From Canny.c: */
250 
251 extern VImage VCanny (
252 #if NeedFunctionPrototypes
253  VImage /* src */,
254  VImage /* dest */,
255  VBand /* band */,
256  double /* sigma */,
257  VImage * /* orientation */,
258  double * /* noise */
259 #endif
260 );
261 
262 /* From Complex.c: */
263 
264 extern VImage VBuildComplexImage (
265 #if NeedFunctionPrototypes
266  VImage /* r_src */,
267  VBand /* r_band */,
268  VImage /* i_src */,
269  VBand /* i_band */,
270  VImage /* dest */,
271  VRepnKind /* pixel_repn */
272 #endif
273 );
274 
275 extern VImage VImageMagnitude (
276 #if NeedFunctionPrototypes
277  VImage /* src */,
278  VImage /* dest */,
279  VBand /* band */
280 #endif
281 );
282 
283 extern VImage VImagePhase (
284 #if NeedFunctionPrototypes
285  VImage /* src */,
286  VImage /* dest */,
287  VBand /* band */
288 #endif
289 );
290 
291 /* From ConvertC.c: */
292 
293 extern VImage VConvertImageCopy (
294 #if NeedFunctionPrototypes
295  VImage /* src */,
296  VImage /* dest */,
297  VBand /* band */,
298  VRepnKind /* pixel_repn */
299 #endif
300 );
301 
302 /* From ConvertL.c: */
303 
304 extern VImage VConvertImageLinear (
305 #if NeedFunctionPrototypes
306  VImage /* src */,
307  VImage /* dest */,
308  VBand /* band */,
309  VRepnKind /* pixel_repn */,
310  double /* a */,
311  double /* b */
312 #endif
313 );
314 
315 /* From ConvertO.c: */
316 
317 extern VImage VConvertImageOpt (
318 #if NeedFunctionPrototypes
319  VImage /* src */,
320  VImage /* dest */,
321  VBand /* band */,
322  VRepnKind /* pixel_repn */,
323  int /* method */
324 #endif
325 );
326 
327 /* From ConvertR.c: */
328 
329 extern VImage VConvertImageRange (
330 #if NeedFunctionPrototypes
331  VImage /* src */,
332  VImage /* dest */,
333  VBand /* band */,
334  VRepnKind /* pixel_repn */
335 #endif
336 );
337 
338 /* From Convolve.c: */
339 
340 extern VImage VConvolveImage (
341 #if NeedFunctionPrototypes
342  VImage /* src */,
343  VImage /* dest */,
344  VBand /* band */,
345  VImage /* mask */,
346  VConvolvePadMethod /* pad_method */,
347  int /* shift */
348 #endif
349 );
350 
351 /* From ConvolveSep.c: */
352 
353 extern VImage VConvolveImageSep (
354 #if NeedFunctionPrototypes
355  VImage /* src */,
356  VImage /* dest */,
357  VBand /* band */,
358  VImage [3] /* masks */,
359  VConvolvePadMethod [3] /* pad_methods */,
360  int [3] /* shifts */
361 #endif
362 );
363 
364 /* From Crop.c: */
365 
366 extern VImage VCropImage (
367 #if NeedFunctionPrototypes
368  VImage /* src */,
369  VImage /* dest */,
370  VBand /* band */,
371  int /* top */,
372  int /* left */,
373  int /* height */,
374  int /* width */
375 #endif
376 );
377 
378 /* From Dither.c: */
379 
380 extern VBoolean VDither (
381 #if NeedFunctionPrototypes
382  VImage /* src */,
383  VImage /* dest */,
384  VBand /* band */,
385  int /* top */,
386  int /* left */,
387  int /* height */,
388  int /* width */,
389  int [] /* nvalues */,
390  VBooleanPromoted /* absolute */
391 #endif
392 );
393 
394 /* From Fft.c: */
395 
396 extern VImage VImageFFT (
397 #if NeedFunctionPrototypes
398  VImage /* src */,
399  VImage /* dest */,
400  VBooleanPromoted /* inverse */,
401  double /* norm */
402 #endif
403 );
404 
405 /* In Fill.c: */
406 
407 extern VBoolean VFillImage (
408 #if NeedFunctionPrototypes
409  VImage /* image */,
410  VBand /* band */,
411  VDoublePromoted /* value */
412 #endif
413 );
414 
415 /* From Flip.c: */
416 
417 extern VImage VFlipImage (
418 #if NeedFunctionPrototypes
419  VImage /* src */,
420  VImage /* dest */,
421  VBand /* band */,
422  VBooleanPromoted /* vertical */
423 #endif
424 );
425 
426 /* From ForkImageDpy.c: */
427 
428 extern pid_t VForkImageDisplay (
429 #if NeedFunctionPrototypes
430  VImage /* image */,
431  VStringConst /* program */,
432  VStringConst /* title */
433 #endif
434 );
435 
436 /* From GaussConv.c: */
437 
438 extern VImage VGaussianConvolveImage (
439 #if NeedFunctionPrototypes
440  VImage /* src */,
441  VImage /* dest */,
442  VBand /* band */,
443  double /* sigma */,
444  int /* filter_size */,
445  VFilterKind /* filter_kind */
446 #endif
447 );
448 
449 /* From Gradient.c: */
450 
451 extern VImage VImageGradient (
452 #if NeedFunctionPrototypes
453  VImage /* src */,
454  VImage /* dest */,
455  VBand /* band */
456 #endif
457 );
458 
459 /* From GradientSeq.c: */
460 
461 extern VImage VImageGradientSeq (
462 #if NeedFunctionPrototypes
463  VImage /* src */,
464  VImage /* dest */,
465  VBand /* band */,
466  int /* kernel_size */,
467  VDouble [] /* kernel */
468 #endif
469 );
470 
471 /* From Image.c: */
472 
473 extern VImage VCreateImage (
474 #if NeedFunctionPrototypes
475  int /* nbands */,
476  int /* nrows */,
477  int /* ncols */,
478  VRepnKind /* pixel_repn */
479 #endif
480 );
481 
482 extern VImage VCreateImageLike (
483 #if NeedFunctionPrototypes
484  VImage /* src */
485 #endif
486 );
487 
488 extern void VDestroyImage (
489 #if NeedFunctionPrototypes
490  VImage /* image */
491 #endif
492 );
493 
494 extern VDouble VGetPixel (
495 #if NeedFunctionPrototypes
496  VImage /* image */,
497  int /* band */,
498  int /* row */,
499  int /* column */
500 #endif
501 );
502 
503 extern void VSetPixel (
504 #if NeedFunctionPrototypes
505  VImage /* image */,
506  int /* band */,
507  int /* row */,
508  int /* column */,
509  VDoublePromoted /* value */
510 #endif
511 );
512 
513 extern VImage VCopyImage (
514 #if NeedFunctionPrototypes
515  VImage /* src */,
516  VImage /* dest */,
517  VBand /* band */
518 #endif
519 );
520 
521 extern VImage VCopyImageAttrs (
522 #if NeedFunctionPrototypes
523  VImage /* src */,
524  VImage /* dest */
525 #endif
526 );
527 
528 extern VImage VCopyImagePixels (
529 #if NeedFunctionPrototypes
530  VImage /* src */,
531  VImage /* dest */,
532  VBand /* band */
533 #endif
534 );
535 
536 extern VBoolean VCopyBand (
537 #if NeedFunctionPrototypes
538  VImage /* src */,
539  VBand /* src_band */,
540  VImage /* dest */,
541  VBand /* dest_band */
542 #endif
543 );
544 
545 extern VImage VCombineBands (
546 #if NeedFunctionPrototypes
547  int /* nels */,
548  VImage [] /* src_images */,
549  VBand [] /* src_bands */,
550  VImage /* dest */
551 #endif
552 );
553 
554 extern VImage VCombineBandsVa (
555 #if NeedVarargsPrototypes
556  VImage /* dest */,
557  ...
558 #endif
559 );
560 
561 extern VImage VSelectDestImage (
562 #if NeedFunctionPrototypes
563  VStringConst /* routine */,
564  VImage /* dest */,
565  int /* nbands */,
566  int /* nrows */,
567  int /* ncolumns */,
568  VRepnKind /* pixel_repn */
569 #endif
570 );
571 
572 extern VBoolean VSelectBand (
573 #if NeedFunctionPrototypes
574  VStringConst /* routine */,
575  VImage /* image */,
576  VBand /* band */,
577  int * /* npixels */,
578  VPointer * /* first_pixel */
579 #endif
580 );
581 
582 extern VBandInterp VImageFrameInterp (
583 #if NeedFunctionPrototypes
584  VImage /* image */
585 #endif
586 );
587 
588 extern VBandInterp VImageViewpointInterp (
589 #if NeedFunctionPrototypes
590  VImage /* image */
591 #endif
592 );
593 
594 extern VBandInterp VImageColorInterp (
595 #if NeedFunctionPrototypes
596  VImage /* image */
597 #endif
598 );
599 
600 extern VBandInterp VImageComponentInterp (
601 #if NeedFunctionPrototypes
602  VImage /* image */
603 #endif
604 );
605 
606 extern VBoolean VSetBandInterp (
607 #if NeedFunctionPrototypes
608  VImage /* image */,
609  VBandInterp /* frame_interp */,
610  int /* nframes */,
611  VBandInterp /* viewpoint_interp */,
612  int /* nviewpoints */,
613  VBandInterp /* color_interp */,
614  int /* ncolors */,
615  VBandInterp /* component_interp */,
616  int /* ncomponents */
617 #endif
618 );
619 
620 extern int VReadImages (
621 #if NeedFunctionPrototypes
622  FILE * /* file */,
623  VAttrList * /* attributes */,
624  VImage ** /* images */
625 #endif
626 );
627 
628 extern VBoolean VWriteImages (
629 #if NeedFunctionPrototypes
630  FILE * /* file */,
631  VAttrList /* attributes */,
632  int /* nimages */,
633  VImage [] /* images */
634 #endif
635 );
636 
637 /* From ImageDpy.c: */
638 
639 extern void VImageWindowSize (
640 #if NeedFunctionPrototypes
641  VImage /* image */,
642  int /* max_width */,
643  int /* max_height */,
644  int * /* width */,
645  int * /* height */
646 #endif
647 );
648 
649 /* From ImageToPS.c: */
650 
651 extern VBoolean VImageBandToPS (
652 #if NeedFunctionPrototypes
653  FILE * /* f */,
654  VImage /* image */,
655  VBand /* band */
656 #endif
657 );
658 
659 extern VBoolean VRGBImageToPS (
660 #if NeedFunctionPrototypes
661  FILE * /* f */,
662  VImage /* image */,
663  VBand /* band */
664 #endif
665 );
666 
667 extern VBoolean VGradientImageToPS (
668 #if NeedFunctionPrototypes
669  FILE * /* f */,
670  VImage /* image */,
671  VBand /* band */,
672  double /* arrow_width */
673 #endif
674 );
675 
676 /* From Invert.c: */
677 
678 extern VImage VInvertImage (
679 #if NeedFunctionPrototypes
680  VImage /* src */,
681  VImage /* dest */,
682  VBand /* band */
683 #endif
684 );
685 
686 extern VImage VNegateImage (
687 #if NeedFunctionPrototypes
688  VImage /* src */,
689  VImage /* dest */,
690  VBand /* band */
691 #endif
692 );
693 
694 /* From Kernel.c: */
695 
696 extern VBoolean VGaussianKernel (
697 #if NeedFunctionPrototypes
698  int /* ncoeffs */,
699  VDouble [] /* coeffs */,
700  double /* sigma */
701 #endif
702 );
703 
704 extern VBoolean VGaussianD1Kernel (
705 #if NeedFunctionPrototypes
706  int /* ncoeffs */,
707  VDouble [] /* coeffs */,
708  double /* sigma */
709 #endif
710 );
711 
712 extern VBoolean VGaussianSplineKernel (
713 #if NeedFunctionPrototypes
714  int /* ncoeffs */,
715  VDouble [] /* coeffs */,
716  double /* sigma */
717 #endif
718 );
719 
720 /* From Op.c: */
721 
722 extern VImage VImageOpI (
723 #if NeedFunctionPrototypes
724  VImage /* src1 */,
725  VImage /* dest */,
726  VBand /* band1 */,
727  VImageOpKind /* op */,
728  VImage /* src2 */,
729  VBand /* band2 */,
730  VDouble * /* minptr */,
731  VDouble * /* maxptr */
732 #endif
733 );
734 
735 extern VImage VImageOpU (
736 #if NeedFunctionPrototypes
737  VImage /* src1 */,
738  VImage /* dest */,
739  VBand /* band1 */,
740  VImageOpKind /* op */,
741  VDouble * /* minptr */,
742  VDouble * /* maxptr */
743 #endif
744 );
745 
746 extern VImage VImageOpV (
747 #if NeedFunctionPrototypes
748  VImage /* src1 */,
749  VImage /* dest */,
750  VBand /* band1 */,
751  VImageOpKind /* op */,
752  double /* value */,
753  VDouble * /* minptr */,
754  VDouble * /* maxptr */
755 #endif
756 );
757 
758 /* From OptFlowWLS.c: */
759 
760 VImage VOptFlowWLS (
761 #if NeedFunctionPrototypes
762  VImage /* src */,
763  VImage /* dest */,
764  int /* method */,
765  double /* smoothing */,
766  double /* threshold */,
767  double [2] /* noise */,
768  double /* prior_variance */
769 #endif
770 );
771 
772 /* From ReadPlain.c: */
773 
774 VImage VReadPlain (
775 #if NeedFunctionPrototypes
776  FILE * /* plain format file */
777 #endif
778 );
779 
780 /* From ReadPnm.c: */
781 
782 VImage VReadPnm (
783 #if NeedFunctionPrototypes
784  FILE * /* pnm file */
785 #endif
786 );
787 
788 /* From RGBToGray.c: */
789 
790 extern VImage VRGBImageToGray (
791 #if NeedFunctionPrototypes
792  VImage /* src */,
793  VImage /* dest */,
794  VBand /* band */
795 #endif
796 );
797 
798 /* From Rotate.c: */
799 
800 extern VImage VRotateImage (
801 #if NeedFunctionPrototypes
802  VImage /* src */,
803  VImage /* dest */,
804  VBand /* band */,
805  double /* angle */
806 #endif
807 );
808 
809 /* From Sample.c: */
810 
811 extern VImage VSampleImage (
812 #if NeedFunctionPrototypes
813  VImage /* src */,
814  VImage /* dest */,
815  VBand /* band */,
816  int /* row reduction factor */,
817  int /* column reduction factor */
818 #endif
819 );
820 
821 /* From Scale.c: */
822 
823 VImage VScaleImage (
824 #if NeedFunctionPrototypes
825  VImage /* src */,
826  VImage /* dest */,
827  VBand /* band */,
828  double /* row scaling factor */,
829  double /* column scaling factor */
830 #endif
831 );
832 
833 VImage VReduceImage (
834 #if NeedFunctionPrototypes
835  VImage /* src */,
836  VImage /* dest */,
837  VBand /* band */,
838  int /* row reduction factor */,
839  int /* column reduction factor */
840 #endif
841 );
842 
843 VImage VExpandImage (
844 #if NeedFunctionPrototypes
845  VImage /* src */,
846  VImage /* dest */,
847  VBand /* band */,
848  int /* row expansion factor */,
849  int /* column expansion factor */
850 #endif
851 );
852 
853 /* From Shear.c: */
854 
855 extern VImage VShearImageX (
856 #if NeedFunctionPrototypes
857  VImage /* src */,
858  VImage /* dest */,
859  VBand /* band */,
860  double /* shear */
861 #endif
862 );
863 
864 extern VImage VShearImageY (
865 #if NeedFunctionPrototypes
866  VImage /* src */,
867  VImage /* dest */,
868  VBand /* band */,
869  double /* shear */
870 #endif
871 );
872 
873 /* From Stats.c: */
874 
875 extern VBoolean VImageStats (
876 #if NeedFunctionPrototypes
877  VImage /* src */,
878  VBand /* band */,
879  VDouble * /* pmin */,
880  VDouble * /* pmax */,
881  VDouble * /* pmean */,
882  VDouble * /* pvar */
883 #endif
884 );
885 
886 /* From Synth.c: */
887 
888 /* Later in this file: */
889 VBoolean VRampImage (
890 #if NeedFunctionPrototypes
891  VImage /* image */,
892  VBand /* band */,
893  double [2] /* origin */,
894  double /* orientation */,
895  double /* base */,
896  double /* slope */
897 #endif
898 );
899 
900 VBoolean VSineGratingImage (
901 #if NeedFunctionPrototypes
902  VImage /* image */,
903  VBand /* band */,
904  double [2] /* origin */,
905  double /* amplitude */,
906  double /* base */,
907  double /* frequency */,
908  double /* orientation */,
909  double /* phase */
910 #endif
911 );
912 
913 VBoolean VZonePlateImage (
914 #if NeedFunctionPrototypes
915  VImage /* image */,
916  VBand /* band */,
917  double [2] /* origin */,
918  double /* amplitude */,
919  double /* base */,
920  double /* frequency */,
921  double /* phase */
922 #endif
923 );
924 
925 VBoolean VBinomialNoiseImage (
926 #if NeedFunctionPrototypes
927  VImage /* image */,
928  VBand /* band */,
929  VDoublePromoted /* v0 */,
930  VDoublePromoted /* v1 */,
931  double /* p */
932 #endif
933 );
934 
935 VBoolean VNormalNoiseImage (
936 #if NeedFunctionPrototypes
937  VImage /* image */,
938  VBand /* band */,
939  double /* mean */,
940  double /* std_dev */
941 #endif
942 );
943 
944 VBoolean VUniformNoiseImage (
945 #if NeedFunctionPrototypes
946  VImage /* image */,
947  VBand /* band */,
948  VDoublePromoted /* min_value */,
949  VDoublePromoted /* max_value */
950 #endif
951 );
952 
953 /* From Transpose.c: */
954 
955 extern VImage VTransposeImage (
956 #if NeedFunctionPrototypes
957  VImage /* src */,
958  VImage /* dest */,
959  VBand /* band */
960 #endif
961 );
962 
963 /* From UbcIff.c: */
964 
965 extern VImage VReadUbcIff (
966 #if NeedFunctionPrototypes
967  FILE * /* f */
968 #endif
969 );
970 
971 extern VBoolean VWriteUbcIff (
972 #if NeedFunctionPrototypes
973  FILE * /* f */,
974  VImage /* image */,
975  VBand /* band */
976 #endif
977 );
978 
979 /* From ZeroC.c: */
980 
981 extern VImage VZeroCrossings (
982 #if NeedFunctionPrototypes
983  VImage /* src */,
984  VImage /* dest */,
985  VBand /* band */
986 #endif
987 );
988 
989 #ifdef __cplusplus
990 }
991 #endif
992 
993 #endif /* V_VImage_h */