00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifndef HxCorbaHistogram_idl
00010 #define HxCorbaHistogram_idl
00011
00012 #include "HxCorbaImageRep.idl"
00013
00014 module HxCorba
00015 {
00016
00018 typedef sequence<double> BinDataSequence;
00019
00020
00022 interface HistogramData
00023 {
00024 long dimensionality();
00025 long dimensionSize(in long dim);
00026 long nrOfBins();
00027
00028 double lowBin(in long dim);
00029 double highBin(in long dim);
00030 double binWidth(in long dim);
00031 double binToValue(in long bin, in long dim);
00032 long valueToBin(in double value, in long dim);
00033
00034 double get1(in long bin1);
00035 double get2(in long bin1, in long bin2);
00036 double get3(in long bin1, in long bin2, in long bin3);
00037
00038 double sum();
00039 double minVal();
00040 double maxVal();
00041 double maxValIndex(out long index);
00042
00043 BinDataSequence getDataDouble();
00044 };
00045
00047 struct HistogramMode { double x; double y; };
00048
00050 typedef sequence<HistogramMode> HistogramModeSeq;
00051
00052
00054 interface Histogram : HistogramData
00055 {
00056 Histogram smooth(in double sigma);
00057 HistogramModeSeq modes();
00058 Histogram normalize(in double weight);
00059 double intersection(in Histogram h);
00060 double chiSquare(in Histogram h);
00061 double chiSquareNorm(in Histogram h);
00062
00063 Histogram threshold(in double valThreshold);
00064 long countBins(in double valThreshold);
00065 Histogram reduceRange(in long binMin1, in long binMax1,
00066 in long binMin2, in long binMax2,
00067 in long binMin3, in long binMax3);
00068 Histogram reduceRangeVal(in double binValMin1, in double binValMax1,
00069 in double binValMin2, in double binValMax2,
00070 in double binValMin3, in double binValMax3);
00071 Histogram to1D(in long dim);
00072
00073 void render3d(in RgbBuffer buf, in long dataWidth,
00074 in long dataHeight, in double elevation,
00075 in double alpha, in double threshold);
00076
00077 void destroy();
00078 void put();
00079 };
00080
00081
00083 interface HistogramFactory
00084 {
00085 Histogram makeHistogramFromFile(in string filename);
00086 };
00087
00089 typedef sequence<Histogram> HistogramList;
00090
00091 };
00092
00093 #endif //HxCorbaHistogram_idl