VIA - Volumetric Image Analysis
|
00001 /* 00002 * $Id: VImage.h 726 2004-03-08 13:12:45Z lohmann $ 00003 * 00004 * Definitions associated with images: their representation in files and 00005 * in memory, and operations that can be performed with them. 00006 */ 00007 00008 #ifndef V_VImage_h 00009 #define V_VImage_h 1 00010 00011 /* 00012 * Copyright 1993, 1994 University of British Columbia 00013 * 00014 * Permission to use, copy, modify, distribute, and sell this software and its 00015 * documentation for any purpose is hereby granted without fee, provided that 00016 * the above copyright notice appears in all copies and that both that 00017 * copyright notice and this permission notice appear in supporting 00018 * documentation. UBC makes no representations about the suitability of this 00019 * software for any purpose. It is provided "as is" without express or 00020 * implied warranty. 00021 * 00022 * Author: Arthur Pope, UBC Laboratory for Computational Intelligence 00023 */ 00024 00025 /* From the Vista library: */ 00026 #include "viaio/Vlib.h" 00027 #include "viaio/file.h" 00028 00029 /* From the standard C library: */ 00030 #include <stdio.h> 00031 00032 /* For definition of pid_t: */ 00033 #include <sys/types.h> 00034 00035 /* For portability: */ 00036 #include <X11/Xfuncproto.h> 00037 00038 #ifdef __cplusplus 00039 extern "C" { 00040 #endif 00041 00042 00043 /* 00044 * The representation of an image in memory. 00045 */ 00046 00047 /* Description of an image: */ 00048 typedef struct V_ImageRec { 00049 int nbands; /* number of bands */ 00050 int nrows; /* number of rows */ 00051 int ncolumns; /* number of columns */ 00052 VRepnKind pixel_repn; /* representation of pixel values */ 00053 unsigned long flags; /* various flags */ 00054 VAttrList attributes; /* list of other image attributes */ 00055 VPointer data; /* array of image pixel values */ 00056 VPointer *row_index; /* ptr to first pixel of each row */ 00057 VPointer **band_index; /* ptr to first row of each band */ 00058 int nframes; /* number of motion frames */ 00059 int nviewpoints; /* number of camera viewpoints */ 00060 int ncolors; /* number of color channels */ 00061 int ncomponents; /* number of vector components */ 00062 } VImageRec; 00063 00064 /* Codes for flags: */ 00065 enum { 00066 VImageSingleAlloc = 0x01 /* one free() releases everything */ 00067 }; 00068 00069 00070 /* 00071 * Macros for accessing image in memory. 00072 */ 00073 00074 /* The number of bands, rows, columns, etc. in an image: */ 00075 #define VImageNBands(image) ((image)->nbands) 00076 #define VImageNRows(image) ((image)->nrows) 00077 #define VImageNColumns(image) ((image)->ncolumns) 00078 #define VImageNFrames(image) ((image)->nframes) 00079 #define VImageNViewpoints(image) ((image)->nviewpoints) 00080 #define VImageNColors(image) ((image)->ncolors) 00081 #define VImageNComponents(image) ((image)->ncomponents) 00082 00083 /* An image's pixel representation: */ 00084 #define VPixelRepn(image) ((image)->pixel_repn) 00085 00086 /* An image's pixel data: */ 00087 #define VImageData(image) ((image)->data) 00088 00089 /* An image's list of attributes: */ 00090 #define VImageAttrList(image) ((image)->attributes) 00091 00092 /* The number of pixels in an image: */ 00093 #define VImageNPixels(image) \ 00094 ((image)->nbands * (image)->nrows * (image)->ncolumns) 00095 00096 /* The size, in bytes, of a pixel on the present architecture: */ 00097 #define VPixelSize(image) (VRepnSize ((image)->pixel_repn)) 00098 00099 /* The minimum size, in bits, needed to represent a pixel: */ 00100 #define VPixelPrecision(image) (VRepnPrecision ((image)->pixel_repn)) 00101 00102 /* The name of an image's pixel representation: */ 00103 #define VPixelRepnName(image) (VRepnName ((image)->pixel_repn)) 00104 00105 /* The minimum and maximum legal pixel values: */ 00106 #define VPixelMinValue(image) (VRepnMinValue ((image)->pixel_repn)) 00107 #define VPixelMaxValue(image) (VRepnMaxValue ((image)->pixel_repn)) 00108 00109 /* The size, in bytes, of an entire image on the present architecture: */ 00110 #define VImageSize(image) (VImageNPixels(image) * VPixelSize(image)) 00111 00112 /* A pointer to a specified pixel: */ 00113 #define VPixelPtr(image, band, row, column) \ 00114 ((VPointer) ((char *) ((image)->band_index[band][row]) + \ 00115 (column) * VPixelSize (image))) 00116 00117 /* A specified pixel of a specified type: */ 00118 #define VPixel(image, band, row, column, type) \ 00119 (* ((type *) (image)->band_index[band][row] + (column))) 00120 00121 /* A pointer to a three-dimensional array of pixels: */ 00122 #define VPixelArray(image, type) \ 00123 ((type ***) (image)->band_index) 00124 00125 /* The band corresponding to a particular frame, viewpoint, etc.: */ 00126 #define VBandIndex(image, frame, viewpoint, color, component) \ 00127 (((((frame) * (image)->nviewpoints + (viewpoint)) * (image)->ncolors + \ 00128 (color)) * (image)->ncomponents) + (component)) 00129 00130 /* Test whether two images have the same representational range: */ 00131 #define VSameImageRange(image1, image2) \ 00132 ((image1)->nbands == (image2)->nbands && \ 00133 (image1)->nrows == (image2)->nrows && \ 00134 (image1)->ncolumns == (image2)->ncolumns && \ 00135 (image1)->pixel_repn == (image2)->pixel_repn) 00136 00137 /* Test whether two images have the same size: */ 00138 #define VSameImageSize(image1, image2) \ 00139 ((image1)->nbands == (image2)->nbands && \ 00140 (image1)->nrows == (image2)->nrows && \ 00141 (image1)->ncolumns == (image2)->ncolumns) 00142 00143 00144 /* 00145 * Attributes used to represent an image. 00146 */ 00147 00148 #define VColorInterpAttr "color_interp" 00149 #define VComponentInterpAttr "component_interp" 00150 #define VFrameInterpAttr "frame_interp" 00151 #define VNBandsAttr "nbands" 00152 #define VNColorsAttr "ncolors" 00153 #define VNComponentsAttr "ncomponents" 00154 #define VNFramesAttr "nframes" 00155 #define VNViewpointsAttr "nviewpoints" 00156 #define VPixelAspectRatioAttr "pixel_aspect_ratio" 00157 #define VViewpointInterpAttr "viewpoint_interp" 00158 00159 /* Values of band interpretation attributes: */ 00160 typedef enum { 00161 00162 /* Used at all levels of the hierarchy (frame, viewpoint, color, ...) */ 00163 VBandInterpNone, /* no interpretation specified */ 00164 VBandInterpOther, /* unknown interpretation specified */ 00165 00166 /* Describing motion frames: */ 00167 00168 /* Describing camera viewpoints: */ 00169 VBandInterpStereoPair, 00170 00171 /* Describing color channels: */ 00172 VBandInterpRGB, 00173 00174 /* Describing vector components: */ 00175 VBandInterpComplex, 00176 VBandInterpGradient, 00177 VBandInterpIntensity, 00178 VBandInterpOrientation 00179 } VBandInterp; 00180 00181 extern VDictEntry VBandInterpDict[]; 00182 00183 00184 /* 00185 * Miscellaneous things. 00186 */ 00187 00188 /* For specifying a band: */ 00189 typedef int VBand; 00190 #define VAllBands -1 /* all bands */ 00191 00192 /* For specifying how to pad when convolving: */ 00193 typedef enum { 00194 VConvolvePadNone, /* set border pixels to zero */ 00195 VConvolvePadZero, /* pad with zero */ 00196 VConvolvePadBorder, /* pad with border pixel values */ 00197 VConvolvePadWrap, /* pad with wrapped around values */ 00198 VConvolvePadTrim /* don't pad, trim destination image */ 00199 } VConvolvePadMethod; 00200 00201 /* For specifying which type of image filtering is to be performed: */ 00202 typedef enum { 00203 VFilterGaussian, /* 2D Gaussian smoothing */ 00204 VFilterGaussianDx, /* d / dX */ 00205 VFilterGaussianDy /* d / dY */ 00206 } VFilterKind; 00207 00208 /* Keywords for representing kind of operation: */ 00209 typedef enum { 00210 00211 /* Unary operations: */ 00212 VImageOpAbs, 00213 VImageOpExp, 00214 VImageOpLog, 00215 VImageOpNot, 00216 VImageOpSqrt, 00217 VImageOpSquare, 00218 00219 /* Binary (dyadic) operations: */ 00220 VImageOpAdd, 00221 VImageOpAnd, 00222 VImageOpDist, 00223 VImageOpDiv, 00224 VImageOpMax, 00225 VImageOpMin, 00226 VImageOpMult, 00227 VImageOpOr, 00228 VImageOpSub, 00229 VImageOpXor 00230 } VImageOpKind; 00231 00232 00233 /* 00234 * Declarations of library routines. 00235 */ 00236 00237 /* From Adjust.c: */ 00238 00239 extern VImage VAdjustImage ( 00240 #if NeedFunctionPrototypes 00241 VImage /* src */, 00242 VImage /* dest */, 00243 VBand /* band */, 00244 double /* brightness */, 00245 double /* contrast */ 00246 #endif 00247 ); 00248 00249 /* From Canny.c: */ 00250 00251 extern VImage VCanny ( 00252 #if NeedFunctionPrototypes 00253 VImage /* src */, 00254 VImage /* dest */, 00255 VBand /* band */, 00256 double /* sigma */, 00257 VImage * /* orientation */, 00258 double * /* noise */ 00259 #endif 00260 ); 00261 00262 /* From Complex.c: */ 00263 00264 extern VImage VBuildComplexImage ( 00265 #if NeedFunctionPrototypes 00266 VImage /* r_src */, 00267 VBand /* r_band */, 00268 VImage /* i_src */, 00269 VBand /* i_band */, 00270 VImage /* dest */, 00271 VRepnKind /* pixel_repn */ 00272 #endif 00273 ); 00274 00275 extern VImage VImageMagnitude ( 00276 #if NeedFunctionPrototypes 00277 VImage /* src */, 00278 VImage /* dest */, 00279 VBand /* band */ 00280 #endif 00281 ); 00282 00283 extern VImage VImagePhase ( 00284 #if NeedFunctionPrototypes 00285 VImage /* src */, 00286 VImage /* dest */, 00287 VBand /* band */ 00288 #endif 00289 ); 00290 00291 /* From ConvertC.c: */ 00292 00293 extern VImage VConvertImageCopy ( 00294 #if NeedFunctionPrototypes 00295 VImage /* src */, 00296 VImage /* dest */, 00297 VBand /* band */, 00298 VRepnKind /* pixel_repn */ 00299 #endif 00300 ); 00301 00302 /* From ConvertL.c: */ 00303 00304 extern VImage VConvertImageLinear ( 00305 #if NeedFunctionPrototypes 00306 VImage /* src */, 00307 VImage /* dest */, 00308 VBand /* band */, 00309 VRepnKind /* pixel_repn */, 00310 double /* a */, 00311 double /* b */ 00312 #endif 00313 ); 00314 00315 /* From ConvertO.c: */ 00316 00317 extern VImage VConvertImageOpt ( 00318 #if NeedFunctionPrototypes 00319 VImage /* src */, 00320 VImage /* dest */, 00321 VBand /* band */, 00322 VRepnKind /* pixel_repn */, 00323 int /* method */ 00324 #endif 00325 ); 00326 00327 /* From ConvertR.c: */ 00328 00329 extern VImage VConvertImageRange ( 00330 #if NeedFunctionPrototypes 00331 VImage /* src */, 00332 VImage /* dest */, 00333 VBand /* band */, 00334 VRepnKind /* pixel_repn */ 00335 #endif 00336 ); 00337 00338 /* From Convolve.c: */ 00339 00340 extern VImage VConvolveImage ( 00341 #if NeedFunctionPrototypes 00342 VImage /* src */, 00343 VImage /* dest */, 00344 VBand /* band */, 00345 VImage /* mask */, 00346 VConvolvePadMethod /* pad_method */, 00347 int /* shift */ 00348 #endif 00349 ); 00350 00351 /* From ConvolveSep.c: */ 00352 00353 extern VImage VConvolveImageSep ( 00354 #if NeedFunctionPrototypes 00355 VImage /* src */, 00356 VImage /* dest */, 00357 VBand /* band */, 00358 VImage [3] /* masks */, 00359 VConvolvePadMethod [3] /* pad_methods */, 00360 int [3] /* shifts */ 00361 #endif 00362 ); 00363 00364 /* From Crop.c: */ 00365 00366 extern VImage VCropImage ( 00367 #if NeedFunctionPrototypes 00368 VImage /* src */, 00369 VImage /* dest */, 00370 VBand /* band */, 00371 int /* top */, 00372 int /* left */, 00373 int /* height */, 00374 int /* width */ 00375 #endif 00376 ); 00377 00378 /* From Dither.c: */ 00379 00380 extern VBoolean VDither ( 00381 #if NeedFunctionPrototypes 00382 VImage /* src */, 00383 VImage /* dest */, 00384 VBand /* band */, 00385 int /* top */, 00386 int /* left */, 00387 int /* height */, 00388 int /* width */, 00389 int [] /* nvalues */, 00390 VBooleanPromoted /* absolute */ 00391 #endif 00392 ); 00393 00394 /* From Fft.c: */ 00395 00396 extern VImage VImageFFT ( 00397 #if NeedFunctionPrototypes 00398 VImage /* src */, 00399 VImage /* dest */, 00400 VBooleanPromoted /* inverse */, 00401 double /* norm */ 00402 #endif 00403 ); 00404 00405 /* In Fill.c: */ 00406 00407 extern VBoolean VFillImage ( 00408 #if NeedFunctionPrototypes 00409 VImage /* image */, 00410 VBand /* band */, 00411 VDoublePromoted /* value */ 00412 #endif 00413 ); 00414 00415 /* From Flip.c: */ 00416 00417 extern VImage VFlipImage ( 00418 #if NeedFunctionPrototypes 00419 VImage /* src */, 00420 VImage /* dest */, 00421 VBand /* band */, 00422 VBooleanPromoted /* vertical */ 00423 #endif 00424 ); 00425 00426 /* From ForkImageDpy.c: */ 00427 00428 extern pid_t VForkImageDisplay ( 00429 #if NeedFunctionPrototypes 00430 VImage /* image */, 00431 VStringConst /* program */, 00432 VStringConst /* title */ 00433 #endif 00434 ); 00435 00436 /* From GaussConv.c: */ 00437 00438 extern VImage VGaussianConvolveImage ( 00439 #if NeedFunctionPrototypes 00440 VImage /* src */, 00441 VImage /* dest */, 00442 VBand /* band */, 00443 double /* sigma */, 00444 int /* filter_size */, 00445 VFilterKind /* filter_kind */ 00446 #endif 00447 ); 00448 00449 /* From Gradient.c: */ 00450 00451 extern VImage VImageGradient ( 00452 #if NeedFunctionPrototypes 00453 VImage /* src */, 00454 VImage /* dest */, 00455 VBand /* band */ 00456 #endif 00457 ); 00458 00459 /* From GradientSeq.c: */ 00460 00461 extern VImage VImageGradientSeq ( 00462 #if NeedFunctionPrototypes 00463 VImage /* src */, 00464 VImage /* dest */, 00465 VBand /* band */, 00466 int /* kernel_size */, 00467 VDouble [] /* kernel */ 00468 #endif 00469 ); 00470 00471 /* From Image.c: */ 00472 00473 extern VImage VCreateImage ( 00474 #if NeedFunctionPrototypes 00475 int /* nbands */, 00476 int /* nrows */, 00477 int /* ncols */, 00478 VRepnKind /* pixel_repn */ 00479 #endif 00480 ); 00481 00482 extern VImage VCreateImageLike ( 00483 #if NeedFunctionPrototypes 00484 VImage /* src */ 00485 #endif 00486 ); 00487 00488 extern void VDestroyImage ( 00489 #if NeedFunctionPrototypes 00490 VImage /* image */ 00491 #endif 00492 ); 00493 00494 extern VDouble VGetPixel ( 00495 #if NeedFunctionPrototypes 00496 VImage /* image */, 00497 int /* band */, 00498 int /* row */, 00499 int /* column */ 00500 #endif 00501 ); 00502 00503 extern void VSetPixel ( 00504 #if NeedFunctionPrototypes 00505 VImage /* image */, 00506 int /* band */, 00507 int /* row */, 00508 int /* column */, 00509 VDoublePromoted /* value */ 00510 #endif 00511 ); 00512 00513 extern VImage VCopyImage ( 00514 #if NeedFunctionPrototypes 00515 VImage /* src */, 00516 VImage /* dest */, 00517 VBand /* band */ 00518 #endif 00519 ); 00520 00521 extern VImage VCopyImageAttrs ( 00522 #if NeedFunctionPrototypes 00523 VImage /* src */, 00524 VImage /* dest */ 00525 #endif 00526 ); 00527 00528 extern VImage VCopyImagePixels ( 00529 #if NeedFunctionPrototypes 00530 VImage /* src */, 00531 VImage /* dest */, 00532 VBand /* band */ 00533 #endif 00534 ); 00535 00536 extern VBoolean VCopyBand ( 00537 #if NeedFunctionPrototypes 00538 VImage /* src */, 00539 VBand /* src_band */, 00540 VImage /* dest */, 00541 VBand /* dest_band */ 00542 #endif 00543 ); 00544 00545 extern VImage VCombineBands ( 00546 #if NeedFunctionPrototypes 00547 int /* nels */, 00548 VImage [] /* src_images */, 00549 VBand [] /* src_bands */, 00550 VImage /* dest */ 00551 #endif 00552 ); 00553 00554 extern VImage VCombineBandsVa ( 00555 #if NeedVarargsPrototypes 00556 VImage /* dest */, 00557 ... 00558 #endif 00559 ); 00560 00561 extern VImage VSelectDestImage ( 00562 #if NeedFunctionPrototypes 00563 VStringConst /* routine */, 00564 VImage /* dest */, 00565 int /* nbands */, 00566 int /* nrows */, 00567 int /* ncolumns */, 00568 VRepnKind /* pixel_repn */ 00569 #endif 00570 ); 00571 00572 extern VBoolean VSelectBand ( 00573 #if NeedFunctionPrototypes 00574 VStringConst /* routine */, 00575 VImage /* image */, 00576 VBand /* band */, 00577 int * /* npixels */, 00578 VPointer * /* first_pixel */ 00579 #endif 00580 ); 00581 00582 extern VBandInterp VImageFrameInterp ( 00583 #if NeedFunctionPrototypes 00584 VImage /* image */ 00585 #endif 00586 ); 00587 00588 extern VBandInterp VImageViewpointInterp ( 00589 #if NeedFunctionPrototypes 00590 VImage /* image */ 00591 #endif 00592 ); 00593 00594 extern VBandInterp VImageColorInterp ( 00595 #if NeedFunctionPrototypes 00596 VImage /* image */ 00597 #endif 00598 ); 00599 00600 extern VBandInterp VImageComponentInterp ( 00601 #if NeedFunctionPrototypes 00602 VImage /* image */ 00603 #endif 00604 ); 00605 00606 extern VBoolean VSetBandInterp ( 00607 #if NeedFunctionPrototypes 00608 VImage /* image */, 00609 VBandInterp /* frame_interp */, 00610 int /* nframes */, 00611 VBandInterp /* viewpoint_interp */, 00612 int /* nviewpoints */, 00613 VBandInterp /* color_interp */, 00614 int /* ncolors */, 00615 VBandInterp /* component_interp */, 00616 int /* ncomponents */ 00617 #endif 00618 ); 00619 00620 extern int VReadImages ( 00621 #if NeedFunctionPrototypes 00622 FILE * /* file */, 00623 VAttrList * /* attributes */, 00624 VImage ** /* images */ 00625 #endif 00626 ); 00627 00628 extern VBoolean VWriteImages ( 00629 #if NeedFunctionPrototypes 00630 FILE * /* file */, 00631 VAttrList /* attributes */, 00632 int /* nimages */, 00633 VImage [] /* images */ 00634 #endif 00635 ); 00636 00637 /* From ImageDpy.c: */ 00638 00639 extern void VImageWindowSize ( 00640 #if NeedFunctionPrototypes 00641 VImage /* image */, 00642 int /* max_width */, 00643 int /* max_height */, 00644 int * /* width */, 00645 int * /* height */ 00646 #endif 00647 ); 00648 00649 /* From ImageToPS.c: */ 00650 00651 extern VBoolean VImageBandToPS ( 00652 #if NeedFunctionPrototypes 00653 FILE * /* f */, 00654 VImage /* image */, 00655 VBand /* band */ 00656 #endif 00657 ); 00658 00659 extern VBoolean VRGBImageToPS ( 00660 #if NeedFunctionPrototypes 00661 FILE * /* f */, 00662 VImage /* image */, 00663 VBand /* band */ 00664 #endif 00665 ); 00666 00667 extern VBoolean VGradientImageToPS ( 00668 #if NeedFunctionPrototypes 00669 FILE * /* f */, 00670 VImage /* image */, 00671 VBand /* band */, 00672 double /* arrow_width */ 00673 #endif 00674 ); 00675 00676 /* From Invert.c: */ 00677 00678 extern VImage VInvertImage ( 00679 #if NeedFunctionPrototypes 00680 VImage /* src */, 00681 VImage /* dest */, 00682 VBand /* band */ 00683 #endif 00684 ); 00685 00686 extern VImage VNegateImage ( 00687 #if NeedFunctionPrototypes 00688 VImage /* src */, 00689 VImage /* dest */, 00690 VBand /* band */ 00691 #endif 00692 ); 00693 00694 /* From Kernel.c: */ 00695 00696 extern VBoolean VGaussianKernel ( 00697 #if NeedFunctionPrototypes 00698 int /* ncoeffs */, 00699 VDouble [] /* coeffs */, 00700 double /* sigma */ 00701 #endif 00702 ); 00703 00704 extern VBoolean VGaussianD1Kernel ( 00705 #if NeedFunctionPrototypes 00706 int /* ncoeffs */, 00707 VDouble [] /* coeffs */, 00708 double /* sigma */ 00709 #endif 00710 ); 00711 00712 extern VBoolean VGaussianSplineKernel ( 00713 #if NeedFunctionPrototypes 00714 int /* ncoeffs */, 00715 VDouble [] /* coeffs */, 00716 double /* sigma */ 00717 #endif 00718 ); 00719 00720 /* From Op.c: */ 00721 00722 extern VImage VImageOpI ( 00723 #if NeedFunctionPrototypes 00724 VImage /* src1 */, 00725 VImage /* dest */, 00726 VBand /* band1 */, 00727 VImageOpKind /* op */, 00728 VImage /* src2 */, 00729 VBand /* band2 */, 00730 VDouble * /* minptr */, 00731 VDouble * /* maxptr */ 00732 #endif 00733 ); 00734 00735 extern VImage VImageOpU ( 00736 #if NeedFunctionPrototypes 00737 VImage /* src1 */, 00738 VImage /* dest */, 00739 VBand /* band1 */, 00740 VImageOpKind /* op */, 00741 VDouble * /* minptr */, 00742 VDouble * /* maxptr */ 00743 #endif 00744 ); 00745 00746 extern VImage VImageOpV ( 00747 #if NeedFunctionPrototypes 00748 VImage /* src1 */, 00749 VImage /* dest */, 00750 VBand /* band1 */, 00751 VImageOpKind /* op */, 00752 double /* value */, 00753 VDouble * /* minptr */, 00754 VDouble * /* maxptr */ 00755 #endif 00756 ); 00757 00758 /* From OptFlowWLS.c: */ 00759 00760 VImage VOptFlowWLS ( 00761 #if NeedFunctionPrototypes 00762 VImage /* src */, 00763 VImage /* dest */, 00764 int /* method */, 00765 double /* smoothing */, 00766 double /* threshold */, 00767 double [2] /* noise */, 00768 double /* prior_variance */ 00769 #endif 00770 ); 00771 00772 /* From ReadPlain.c: */ 00773 00774 VImage VReadPlain ( 00775 #if NeedFunctionPrototypes 00776 FILE * /* plain format file */ 00777 #endif 00778 ); 00779 00780 /* From ReadPnm.c: */ 00781 00782 VImage VReadPnm ( 00783 #if NeedFunctionPrototypes 00784 FILE * /* pnm file */ 00785 #endif 00786 ); 00787 00788 /* From RGBToGray.c: */ 00789 00790 extern VImage VRGBImageToGray ( 00791 #if NeedFunctionPrototypes 00792 VImage /* src */, 00793 VImage /* dest */, 00794 VBand /* band */ 00795 #endif 00796 ); 00797 00798 /* From Rotate.c: */ 00799 00800 extern VImage VRotateImage ( 00801 #if NeedFunctionPrototypes 00802 VImage /* src */, 00803 VImage /* dest */, 00804 VBand /* band */, 00805 double /* angle */ 00806 #endif 00807 ); 00808 00809 /* From Sample.c: */ 00810 00811 extern VImage VSampleImage ( 00812 #if NeedFunctionPrototypes 00813 VImage /* src */, 00814 VImage /* dest */, 00815 VBand /* band */, 00816 int /* row reduction factor */, 00817 int /* column reduction factor */ 00818 #endif 00819 ); 00820 00821 /* From Scale.c: */ 00822 00823 VImage VScaleImage ( 00824 #if NeedFunctionPrototypes 00825 VImage /* src */, 00826 VImage /* dest */, 00827 VBand /* band */, 00828 double /* row scaling factor */, 00829 double /* column scaling factor */ 00830 #endif 00831 ); 00832 00833 VImage VReduceImage ( 00834 #if NeedFunctionPrototypes 00835 VImage /* src */, 00836 VImage /* dest */, 00837 VBand /* band */, 00838 int /* row reduction factor */, 00839 int /* column reduction factor */ 00840 #endif 00841 ); 00842 00843 VImage VExpandImage ( 00844 #if NeedFunctionPrototypes 00845 VImage /* src */, 00846 VImage /* dest */, 00847 VBand /* band */, 00848 int /* row expansion factor */, 00849 int /* column expansion factor */ 00850 #endif 00851 ); 00852 00853 /* From Shear.c: */ 00854 00855 extern VImage VShearImageX ( 00856 #if NeedFunctionPrototypes 00857 VImage /* src */, 00858 VImage /* dest */, 00859 VBand /* band */, 00860 double /* shear */ 00861 #endif 00862 ); 00863 00864 extern VImage VShearImageY ( 00865 #if NeedFunctionPrototypes 00866 VImage /* src */, 00867 VImage /* dest */, 00868 VBand /* band */, 00869 double /* shear */ 00870 #endif 00871 ); 00872 00873 /* From Stats.c: */ 00874 00875 extern VBoolean VImageStats ( 00876 #if NeedFunctionPrototypes 00877 VImage /* src */, 00878 VBand /* band */, 00879 VDouble * /* pmin */, 00880 VDouble * /* pmax */, 00881 VDouble * /* pmean */, 00882 VDouble * /* pvar */ 00883 #endif 00884 ); 00885 00886 /* From Synth.c: */ 00887 00888 /* Later in this file: */ 00889 VBoolean VRampImage ( 00890 #if NeedFunctionPrototypes 00891 VImage /* image */, 00892 VBand /* band */, 00893 double [2] /* origin */, 00894 double /* orientation */, 00895 double /* base */, 00896 double /* slope */ 00897 #endif 00898 ); 00899 00900 VBoolean VSineGratingImage ( 00901 #if NeedFunctionPrototypes 00902 VImage /* image */, 00903 VBand /* band */, 00904 double [2] /* origin */, 00905 double /* amplitude */, 00906 double /* base */, 00907 double /* frequency */, 00908 double /* orientation */, 00909 double /* phase */ 00910 #endif 00911 ); 00912 00913 VBoolean VZonePlateImage ( 00914 #if NeedFunctionPrototypes 00915 VImage /* image */, 00916 VBand /* band */, 00917 double [2] /* origin */, 00918 double /* amplitude */, 00919 double /* base */, 00920 double /* frequency */, 00921 double /* phase */ 00922 #endif 00923 ); 00924 00925 VBoolean VBinomialNoiseImage ( 00926 #if NeedFunctionPrototypes 00927 VImage /* image */, 00928 VBand /* band */, 00929 VDoublePromoted /* v0 */, 00930 VDoublePromoted /* v1 */, 00931 double /* p */ 00932 #endif 00933 ); 00934 00935 VBoolean VNormalNoiseImage ( 00936 #if NeedFunctionPrototypes 00937 VImage /* image */, 00938 VBand /* band */, 00939 double /* mean */, 00940 double /* std_dev */ 00941 #endif 00942 ); 00943 00944 VBoolean VUniformNoiseImage ( 00945 #if NeedFunctionPrototypes 00946 VImage /* image */, 00947 VBand /* band */, 00948 VDoublePromoted /* min_value */, 00949 VDoublePromoted /* max_value */ 00950 #endif 00951 ); 00952 00953 /* From Transpose.c: */ 00954 00955 extern VImage VTransposeImage ( 00956 #if NeedFunctionPrototypes 00957 VImage /* src */, 00958 VImage /* dest */, 00959 VBand /* band */ 00960 #endif 00961 ); 00962 00963 /* From UbcIff.c: */ 00964 00965 extern VImage VReadUbcIff ( 00966 #if NeedFunctionPrototypes 00967 FILE * /* f */ 00968 #endif 00969 ); 00970 00971 extern VBoolean VWriteUbcIff ( 00972 #if NeedFunctionPrototypes 00973 FILE * /* f */, 00974 VImage /* image */, 00975 VBand /* band */ 00976 #endif 00977 ); 00978 00979 /* From ZeroC.c: */ 00980 00981 extern VImage VZeroCrossings ( 00982 #if NeedFunctionPrototypes 00983 VImage /* src */, 00984 VImage /* dest */, 00985 VBand /* band */ 00986 #endif 00987 ); 00988 00989 #ifdef __cplusplus 00990 } 00991 #endif 00992 00993 #endif /* V_VImage_h */