00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifndef HxCorbaImageRep_idl
00010 #define HxCorbaImageRep_idl
00011
00012 #include "HxCorbaTagList.idl"
00013 #include "HxCorbaTypes.idl"
00014 #include "HxCorbaPixValue.idl"
00015 #include "HxCorbaRgbBuffer.idl"
00016 #include "HxCorbaMatrix.idl"
00017 #include "HxCorbaRefCountBase.idl"
00018
00019 module HxCorba
00020 {
00021
00023 enum PixelT { INT_VALUE, REAL_VALUE, COMPLEX_VALUE };
00024
00026 enum ImageSignature { SIG2DBYTE, SIG2DSHORT, SIG2DINT, SIG2DFLOAT, SIG2DDOUBLE,
00027 SIG2DVEC2BYTE,SIG2DVEC2SHORT,SIG2DVEC2INT,SIG2DVEC2FLOAT,SIG2DVEC2DOUBLE,
00028 SIG2DVEC3BYTE,SIG2DVEC3SHORT,SIG2DVEC3INT,SIG2DVEC3FLOAT,SIG2DVEC3DOUBLE,
00029 SIG2DCOMPLEX};
00030
00031
00033 struct Sizes { long x; long y; long z; };
00034
00036 struct Point { double x; double y; double z; };
00037
00038
00040 interface ImageRepRgbSource : RgbSource
00041 {
00042 void setDisplayMode(in string displayMode);
00043 string getDisplayMode();
00044
00045 void setSize(in Sizes newSize);
00046 void setMaxSize(in Sizes maxSize);
00047 void scale(in float factor);
00048
00049 void setTransferSize(in long nLines);
00050 long getTransferSize();
00051 void setTransferPos(in long line);
00052 long getTransferPos();
00053
00054 Sizes getSizes();
00055 Sizes getOriginalSizes();
00056
00057 void close();
00058 };
00059
00060
00062 interface ImageData
00063 {
00064 long dimensionality();
00065 long numberOfPixels();
00066 long pixelDimensionality();
00067 long pixelPrecision();
00068 PixelT pixelType();
00069 Sizes getSizes();
00070 long dimensionSize(in long i);
00071 ImageSignature signature();
00072
00073 RgbSeq getRgb2d(in string displayMode);
00074 void fillRgb2d(in RgbBuffer buf, in string displayMode);
00075 ImageRepRgbSource getRgbSource();
00076
00077
00078
00079
00080
00081
00082 };
00083
00084
00086 enum GeoIntType { LINEAR, NEAREST };
00087
00089 enum GeoTransType { FORWARD, BACKWARD };
00090
00092 enum ResultPrecision { SOURCE_PREC, ARITH_PREC, SMALL_PREC };
00093
00094
00096 exception ImageException
00097 {
00098 string message;
00099 };
00100
00101
00102 interface ImageRep;
00103
00105 typedef sequence<ImageRep> ImageList;
00106
00107
00109 interface ImageRep : ImageData, RefCountBase
00110 {
00111 ImageRep binaryPixOp(in ImageRep arg, in string bpoName, in TagList tags)
00112 raises(ImageException);
00113
00114 ImageRep binaryPixOpVal(in PixValue arg, in string bpoName, in TagList tags)
00115 raises(ImageException);
00116
00117 ImageRep unaryPixOp(in string upoName, in TagList tags)
00118 raises(ImageException);
00119
00120 ImageRep multiPixOp(in ImageList args, in string mpoName, in TagList tags)
00121 raises(ImageException);
00122
00123 ImageList MNPixOp(in ImageList args, in string mpoName, in TagList tags)
00124 raises(ImageException);
00125
00126 PixValue reduceOp(in string op, in TagList tags)
00127 raises(ImageException);
00128
00129 ImageRep generalizedConvolution(in ImageRep kernel,
00130 in string gMul, in string gAdd,
00131 in ResultPrecision resPrec, in TagList tags)
00132 raises(ImageException);
00133
00134 ImageRep genConv2dSep(in ImageRep kernel1, in ImageRep kernel2,
00135 in string gMul, in string gAdd,
00136 in ResultPrecision resPrec, in TagList tags)
00137 raises(ImageException);
00138
00139 ImageRep recGenConv(in ImageRep kerImg, in string gMul,
00140 in string gAdd, in ResultPrecision resPrec,
00141 in TagList tags)
00142 raises(ImageException);
00143
00144 ImageRep neighbourhoodOp(in string ngbName, in TagList tags)
00145 raises(ImageException);
00146
00147 ImageRep geometricOp2d(in Matrix func, in GeoIntType gi,
00148 in GeoTransType gt, in boolean adjustSize,
00149 in PixValue background)
00150 raises(ImageException);
00151
00152 ImageRep scale(in double sx, in double sy, in GeoIntType gi);
00153
00154 PixValue getAt(in long x, in long y, in long zz);
00155
00156 void destroy();
00157 };
00158
00159
00161 interface ImageFactory
00162 {
00163 ImageRep importImage(in ImageData data);
00164
00165 ImageRep fromSignature(in ImageSignature sig, in Sizes size);
00166 ImageRep fromImage(in ImageSignature sig, in ImageRep src);
00167 ImageRep fromValue(in ImageSignature sig, in Sizes size,
00168 in PixValue val);
00169
00170 ImageRep fromByteData(in long pixelDimensionality,in long dimensions,
00171 in Sizes size, in OctetSeq data);
00172 ImageRep fromShortData(in long pixelDimensionality, in long dimensions,
00173 in Sizes size, in ShortSeq data);
00174 ImageRep fromIntData(in long pixelDimensionality, in long dimensions,
00175 in Sizes size, in LongSeq data);
00176 ImageRep fromFloatData(in long pixelDimensionality, in long dimensions,
00177 in Sizes size, in FloatSeq data);
00178 ImageRep fromDoubleData(in long pixelDimensionality, in long dimensions,
00179 in Sizes size, in DoubleSeq data);
00180
00181 ImageRep fromJavaRgb(in ImageSignature sig, in Sizes size,
00182 in RgbSeq pixels);
00183 ImageRep fromGrayValue(in ImageSignature sig, in Sizes size,
00184 in OctetSeq pixels);
00185 ImageRep fromMatlab(in ImageSignature sig, in Sizes size,
00186 in DoubleSeq pixels);
00187
00188 ImageRep fromNamedGenerator(in ImageSignature sig,
00189 in string generatorName, in TagList tags);
00190 ImageRep fromImport(in ImageSignature sig, in Sizes size,
00191 in string importOp, in TagList tags);
00192
00193 ImageRep from2Images(in ImageRep i1, in ImageRep i2);
00194 ImageRep from3Images(in ImageRep i1, in ImageRep i2, in ImageRep i3);
00195
00196 ImageRep fromFile(in string fileName);
00197
00198
00199
00200
00201 };
00202
00203 };
00204
00205 #endif //HxCorbaImageRep_idl