00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef HxCorbaImageRep_idl
00011 #define HxCorbaImageRep_idl
00012
00013 #include "HxCorbaTagList.idl"
00014 #include "HxCorbaTypes.idl"
00015 #include "HxCorbaPixValue.idl"
00016 #include "HxCorbaRgbBuffer.idl"
00017 #include "HxCorbaMatrix.idl"
00018 #include "HxCorbaRefCountBase.idl"
00019
00020 module HxCorba
00021 {
00022 enum PixelT { INT_VALUE, REAL_VALUE, COMPLEX_VALUE };
00023
00024 enum ImageSignature { SIG2DBYTE, SIG2DSHORT, SIG2DINT, SIG2DFLOAT, SIG2DDOUBLE,
00025 SIG2DVEC2BYTE,SIG2DVEC2SHORT,SIG2DVEC2INT,SIG2DVEC2FLOAT,SIG2DVEC2DOUBLE,
00026 SIG2DVEC3BYTE,SIG2DVEC3SHORT,SIG2DVEC3INT,SIG2DVEC3FLOAT,SIG2DVEC3DOUBLE, SIG2DCOMPLEX};
00027
00028
00029 struct Sizes { long x; long y; long z; };
00030
00031 struct Point { double x; double y; double z; };
00032
00033 interface ImageData
00034 {
00035 long dimensionality();
00036 long numberOfPixels();
00037 long pixelDimensionality();
00038 long pixelPrecision();
00039 PixelT pixelType();
00040 Sizes getSizes();
00041 long dimensionSize(in long i);
00042 ImageSignature signature();
00043
00044 RgbSeq getRgb2d(in string displayMode);
00045 void fillRgb2d(in RgbBuffer buf, in string displayMode);
00046
00047
00048
00049
00050
00051
00052 };
00053
00054
00055
00056 enum GeoIntType { LINEAR, NEAREST };
00057 enum GeoTransType { FORWARD, BACKWARD };
00058 enum ResultPrecision { SOURCE_PREC, ARITH_PREC, SMALL_PREC };
00059
00060 exception ImageException
00061 {
00062 string message;
00063 };
00064
00065 interface ImageRep;
00066 typedef sequence<ImageRep> ImageList;
00067
00068 interface ImageRep : ImageData, RefCountBase
00069 {
00070 ImageRep binaryPixOp(in ImageRep arg, in string bpoName,
00071 in TagList tags)
00072 raises(ImageException);
00073
00074 ImageRep binaryPixOpVal(in PixValue arg, in string bpoName,
00075 in TagList tags)
00076 raises(ImageException);
00077
00078 ImageRep unaryPixOp(in string upoName, in TagList tags)
00079 raises(ImageException);
00080
00081 ImageRep multiPixOp(in ImageList args, in string mpoName,
00082 in TagList tags)
00083 raises(ImageException);
00084
00085 ImageList MNPixOp(in ImageList args, in string mpoName,
00086 in TagList tags)
00087 raises(ImageException);
00088
00089 PixValue reduceOp(in string op, in TagList tags)
00090 raises(ImageException);
00091
00092 ImageRep generalizedConvolution(in ImageRep kernel,
00093 in string gMul, in string gAdd,
00094 in ResultPrecision resPrec, in TagList tags)
00095 raises(ImageException);
00096
00097 ImageRep generalizedConvolutionK1d(in long dimension,
00098 in ImageRep kernel, in string gMul, in string gAdd, in ResultPrecision resPrec, in TagList tags) raises(ImageException);
00099
00100 ImageRep neighbourhoodOp(in string ngbName, in TagList tags)
00101 raises(ImageException);
00102
00103 ImageRep recursiveNeighOp(in ImageRep kerImg, in string gMul,
00104 in string gAdd, in TagList tags,
00105 in ResultPrecision resPrec)
00106 raises(ImageException);
00107
00108 ImageRep geometricOp2d(in Matrix func, in GeoIntType gi,
00109 in GeoTransType gt, in boolean adjustSize,
00110 in PixValue background)
00111 raises(ImageException);
00112
00113 ImageRep scale(in double sx, in double sy, in GeoIntType gi);
00114
00115 PixValue getAt(in long x, in long y, in long zz);
00116
00117
00118 };
00119
00120 interface ImageFactory
00121 {
00122 ImageRep importImage(in ImageData data);
00123
00124 ImageRep fromSignature(in ImageSignature sig, in Sizes size);
00125 ImageRep fromImage(in ImageSignature sig, in ImageRep src);
00126 ImageRep fromValue(in ImageSignature sig, in Sizes size,
00127 in PixValue val);
00128
00129 ImageRep fromByteData(in long pixelDimensionality,in long dimensions,
00130 in Sizes size, in OctetSeq data);
00131 ImageRep fromShortData(in long pixelDimensionality, in long dimensions,
00132 in Sizes size, in ShortSeq data);
00133 ImageRep fromIntData(in long pixelDimensionality, in long dimensions,
00134 in Sizes size, in LongSeq data);
00135 ImageRep fromFloatData(in long pixelDimensionality, in long dimensions,
00136 in Sizes size, in FloatSeq data);
00137 ImageRep fromDoubleData(in long pixelDimensionality, in long dimensions,
00138 in Sizes size, in DoubleSeq data);
00139
00140 ImageRep fromJavaRgb(in ImageSignature sig, in Sizes size,
00141 in RgbSeq pixels);
00142 ImageRep fromGrayValue(in ImageSignature sig, in Sizes size,
00143 in OctetSeq pixels);
00144 ImageRep fromMatlab(in ImageSignature sig, in Sizes size,
00145 in DoubleSeq pixels);
00146
00147 ImageRep fromNamedGenerator(in ImageSignature sig,
00148 in string generatorName, in TagList tags);
00149 ImageRep fromImport(in ImageSignature sig, in Sizes size,
00150 in string importOp, in TagList tags);
00151
00152 ImageRep from2Images(in ImageRep i1, in ImageRep i2);
00153 ImageRep from3Images(in ImageRep i1, in ImageRep i2,
00154 in ImageRep i3);
00155
00156 ImageRep fromFile(in string fileName);
00157
00158
00159
00160
00161 };
00162 };
00163
00164 #endif //HxCorbaImageRep_idl