00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00024
00025 #ifndef QVIP_H
00026 #define QVIP_H
00027
00028 #include <iostream>
00029
00030 #include <qvdefines.h>
00031 #include <QVImage>
00032
00033
00036 void FilterHarrisCornerResponseImage(const QVImage<uChar> &image, QVImage<sFloat> &result, const QPoint &destROIOffset = QPoint(0,0));
00037
00040 void FilterDoG(const QVImage<uChar> &image, QVImage<sFloat> &result);
00041
00045 void SobelCornerResponseImage(const QVImage<sFloat> &image, QVImage<sFloat> &result);
00046
00049 void FilterHessianCornerResponseImage(const QVImage<sFloat> &image, QVImage<sFloat> &result, const QPoint &destROIOffset = QPoint(0,0));
00050
00053 int myFloodFill(QVImage<uChar> &image, uInt x, uInt y, uInt value, uInt minVal, uInt maxVal);
00054
00057 void FilterEqualizeHistogram(const QVImage<uChar,1> &image, QVImage<uChar,1> &equalized, const QPoint &destROIOffset = QPoint(0,0));
00058
00061 void FilterEqualizeHistogram(const QVImage<sFloat,1> &image, QVImage<sFloat,1> &equalized, const QPoint &destROIOffset = QPoint(0,0));
00062
00064 class QVComponentTree;
00065 void FilterPruneComponentTreeSmallRegions(QVImage<uChar> &image, QVComponentTree &componentTree, uInt area);
00066
00067 #include <qvmath/qvvector.h>
00068 #include <QPoint>
00070 void FilterSeparable(const QVImage<sFloat, 1> &image, QVImage<sFloat, 1> &dest,
00071 const QVVector &rowFilter, const QVVector &colFilter, const QPoint &destROIOffset = QPoint(0,0));
00072
00088 void FilterLocalMax(const QVImage<sFloat> &src, QVImage<uChar> &dest, uInt colMaskSize, uInt rowMaskSize, sFloat threshold = 0);
00089
00090
00093 QList<QPointF> GetMaximalResponsePoints1(const QVImage<sFloat> &cornerResponseImage, const double threshold = 1.0);
00094
00097 QList<QPointF> GetMaximalResponsePoints3(const QVImage<sFloat> &cornerResponseImage, const double threshold = 1.0);
00098 #endif
00099