VIA - Volumetric Image Analysis
|
00001 #include "viadata.h" 00002 00003 /* Utilities */ 00004 extern VFloat VReadPixel(VImage,int,int,int); 00005 extern void VWritePixel(VImage,int,int,int,VFloat); 00006 extern VFloat VGetPixelValue (VImage,int); 00007 extern void VSetPixelValue (VImage,int,VFloat); 00008 extern void VWriteNode(VGraph,VNode,float,float,float,float); 00009 extern void VReadNode(VGraph,VNode,float *,float *,float *,float *); 00010 extern void VQuaternionsRotation(float *,float **); 00011 extern void VRotationMatrix(double,double,double,double [3][3]); 00012 extern void VPoint_hpsort(unsigned long,VPoint[]); 00013 00014 extern VImage VContrast(VImage,VImage,VRepnKind,VFloat,VFloat); 00015 extern VImage VContrastUByte(VImage,VImage,VFloat,VFloat); 00016 extern VImage VContrastShort(VImage,VImage,VFloat,VFloat); 00017 extern VImage VContrastShortUByte(VImage, int, int, float, float); 00018 extern VImage VMapImageRange(VImage,VImage,VRepnKind); 00019 extern VImage VMaskRange(VImage,VImage,VFloat,VFloat); 00020 extern VImage VMask(VImage,VImage,VImage); 00021 00022 /* 3D binary morphology */ 00023 extern VImage VDilateImage3d (VImage, VImage,VoxelList,int); 00024 extern VImage VErodeImage3d(VImage,VImage,VoxelList,int); 00025 extern VImage VGenSphere3d(VShort); 00026 extern VImage VGenSphere2d(VShort); 00027 extern VoxelList VConvertSE3d(VImage,int *); 00028 00029 /* 3D greylevel morphology */ 00030 extern VImage VGreyDilation3d(VImage,VImage,VImage); 00031 extern VImage VGreyErosion3d(VImage,VImage,VImage); 00032 00033 /* morphological operators by thresholding distance transform */ 00034 extern VImage VDTClose(VImage,VImage,VDouble); 00035 extern VImage VDTOpen(VImage,VImage,VDouble); 00036 extern VImage VDTErode(VImage,VImage,VDouble); 00037 extern VImage VDTDilate(VImage,VImage,VDouble); 00038 00039 /* distance transforms */ 00040 extern VImage VEuclideanDist3d(VImage,VImage,VRepnKind); 00041 extern VImage VChamferDist3d(VImage,VImage,VRepnKind); 00042 extern VImage VChamferDist2d(VImage,VImage,VBand); 00043 extern VImage VCDT3d (VImage,VImage,VLong,VLong,VLong,VRepnKind); 00044 00045 /* connected components */ 00046 extern VImage VLabelImage2d(VImage,VImage,int,VRepnKind,int *); 00047 extern VImage VLabelImage3d(VImage,VImage,int,VRepnKind,int *); 00048 extern VImage VSelectBig (VImage,VImage); 00049 extern VImage VDeleteSmall(VImage,VImage,int); 00050 00051 00052 /* topological operators */ 00053 extern VImage VBorderImage3d (VImage,VImage); 00054 extern int VBorderPoint(VImage,int,int,int); 00055 extern int VSimplePoint(VImage,int,int,int,int); 00056 extern VImage VTopoclass(VImage,VImage); 00057 extern int VGenusLee (VImage,VShort); 00058 extern VImage VThin3d(VImage,VImage,int); 00059 extern VImage VSkel3d(VImage,VImage); 00060 extern VImage VSkel2d(VImage,VImage); 00061 00062 00063 /* resampling, geometric transformations */ 00064 extern VImage VTriLinearSample3d(VImage,VImage,VImage,float,float,float,int,int,int); 00065 extern VImage VNNSample3d(VImage,VImage,VImage,float,float,float,int,int,int); 00066 extern VImage VCubicSplineSample3d(VImage,VImage,VImage,float,float,float,int,int,int); 00067 extern VImage VTriLinearScale3d (VImage,VImage,int,int,int,float[3],float[3]); 00068 extern VImage VNNScale3d (VImage,VImage,int,int,int,float[3],float[3]); 00069 extern VImage VCubicSplineScale3d (VImage,VImage,int,int,int,float[3],float[3]); 00070 extern VImage VBicubicScale2d(VImage,VImage,VFloat); 00071 extern VImage VBiLinearScale2d(VImage,VImage,int,int,float[2],float[2]); 00072 extern VImage VRotateImage2d(VImage,VImage,VBand,double); 00073 extern VImage VRotateImage3d(VImage,VImage,VFloat,VShort); 00074 extern VImage VShearImageX (VImage src, VImage dest, VBand band, double shear); 00075 extern VImage VShearImageY (VImage src, VImage dest, VBand band, double shear); 00076 00077 00078 /* filters */ 00079 extern VImage VAniso2d(VImage,VImage,VShort,VShort,VFloat,VFloat); 00080 extern VImage VAniso3d(VImage,VImage,VShort,VShort,VFloat,VFloat); 00081 extern VImage VConvolve3d(VImage,VImage,VImage); 00082 extern VImage VConvolve2d(VImage,VImage,VImage); 00083 extern VImage VConvolveCol(VImage,VImage,VImage); 00084 extern VImage VConvolveRow(VImage,VImage,VImage); 00085 extern VImage VConvolveBand(VImage,VImage,VImage); 00086 extern VImage VLeeImage(VImage,VImage,VLong,VDouble,VLong,VLong); 00087 extern VImage VSmoothImage3d(VImage,VImage,VLong,VLong); 00088 extern VImage VFilterGauss2d(VImage,VImage,double); 00089 extern VImage VFilterGauss3d(VImage,VImage,double); 00090 extern VImage VFilterBox3d(VImage,VImage,int); 00091 extern VImage VMedianImage3d (VImage,VImage,int,VBoolean); 00092 extern VImage VMedianImage2d (VImage,VImage,int,VBoolean); 00093 00094 00095 00096 /* segmentation, clustering, binarization */ 00097 extern VImage VBinarizeImage(VImage,VImage,VDouble,VDouble); 00098 extern VImage VIsodataImage3d(VImage,VImage,VLong,VLong); 00099 00100 /* edge detection and curvature */ 00101 extern void VCanny3d(VImage,int,VImage *,VImage *,VImage *); 00102 extern void VCanny2d(VImage,int,VImage *,VImage *); 00103 extern void VDeriche3d(VImage,VFloat,VImage *,VImage *,VImage *); 00104 extern void VDeriche2d(VImage,VFloat,VImage *,VImage *); 00105 extern VImage VMagnitude3d(VImage,VImage,VImage,VImage); 00106 extern VImage VMagnitude2d(VImage,VImage,VImage); 00107 extern VImage VNonmaxSuppression(VImage,VImage,VImage,VImage); 00108 extern VImage VCurvature(VImage,VImage,VFloat,VLong,VBoolean); 00109 00110 /* operations on volumes */ 00111 extern Volumes VImage2Volumes(VImage src); 00112 extern VImage Volumes2Image(Volumes,VRepnKind repn); 00113 extern VImage Volume2Bin(Volume); 00114 extern Volume VBin2Volume(VImage); 00115 extern double VolumeRadius(Volume,double *); 00116 extern VBoolean VolumeInside(Volume,short,short,short); 00117 extern VTrack VolumeGetTrack(Volume,short,short,short); 00118 extern Volume VCopyVolume(Volume); 00119 00120 00121 /* shape features: moments,center of gravity,size */ 00122 extern void VolumeCentroid (Volume,double *); 00123 extern double VolumeMoment (Volume,double *,int,int,int); 00124 extern void VBinCentroid (VImage, double *); 00125 extern double VBinMoment (VImage,double *,int,int,int); 00126 extern long VolumeSize(Volume); 00127 extern long VBinSize(VImage); 00128 00129 /* operations on graphs */ 00130 extern VGraph VImage2Graph (VImage,VGraph,VDouble,VDouble,VBoolean,VBoolean); 00131 extern VGraph VGraphPrune(VGraph,int); 00132 extern void VICP(VGraph,VGraph,int);