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 <qvimageio.h>
00032 #include <QVImage>
00033 #include <QVPolyline>
00034
00035 #include <QVImage>
00036 #include <QFile>
00037
00043 void FilterHarrisCornerResponseImage(const QVImage<uChar> &image, QVImage<sFloat> &result, int aperture=3, int avgwindow=5, const QPoint &destROIOffset = QPoint(0,0));
00044
00050 void FilterDoG(const QVImage<uChar> &image, QVImage<uChar> &result);
00051
00057 void SobelCornerResponseImage(const QVImage<sFloat> &image, QVImage<sFloat> &result);
00058
00064 void FilterHessianCornerResponseImage( const QVImage<sFloat> &image, QVImage<sFloat> &result,
00065 const QPoint &destROIOffset = QPoint(0,0));
00066
00067 #ifndef DOXYGEN_IGNORE_THIS
00068 void FilterNormalize(const QVImage<uChar,1> &image, QVImage<uChar,1> &equalized, const QPoint &destROIOffset = QPoint(0,0));
00069 void FilterNormalize(const QVImage<sFloat,1> &image, QVImage<sFloat,1> &equalized, const QPoint &destROIOffset = QPoint(0,0));
00070 #endif
00071
00078 class QVComponentTree;
00079 void FilterPruneComponentTreeSmallRegions(QVImage<uChar> &image, QVComponentTree &componentTree, uInt area);
00080
00081 #include <qvmath/qvvector.h>
00082 #include <QPoint>
00088 void FilterSeparable(const QVImage<sFloat, 1> &image, QVImage<sFloat, 1> &dest,
00089 const QVVector &rowFilter, const QVVector &colFilter, const QPoint &destROIOffset = QPoint(0,0));
00090
00097 QMap<sFloat, QPointF> fastMaximalPoints(const QVImage<sFloat> &image, const double threshold = 1.0, const int windowSize = 2);
00098
00113 QMap<sFloat, QPointF> fastMaximalPoints(const QVImage<uChar> &image, const double threshold, const int windowRadius);
00114
00116
00122 QMap<sFloat, QPointF> maximalPoints(const QVImage<sFloat> &image, const double threshold = 1.0, const int windowRadius = 2);
00123
00141 void FilterLocalMax(const QVImage<sFloat> &src, QVImage<uChar> &dest, uInt colMaskSize, uInt rowMaskSize, sFloat threshold = 0);
00142
00151 QVector< QVector< QPoint > > CountingSort(const QVImage<uChar, 1> &img);
00152
00191 double IterativePointElimination(const QVPolyline &polyline, QVPolyline &result,
00192 const double param, bool maxNumberOfPointsMethod=FALSE,
00193 bool intersectLines=TRUE, double *max_removed_cost=NULL);
00194
00203 double IterativePointElimination(const QVPolylineF &polyline, QVPolylineF &result,
00204 const double param, bool maxNumberOfPointsMethod=FALSE,
00205 bool intersectLines=TRUE, double *max_removed_cost=NULL);
00206
00207
00208
00209
00210
00211
00212
00213
00214
00215
00216
00217
00218
00219
00220
00221
00222
00223
00224
00225
00226
00227 #ifndef DOXYGEN_IGNORE_THIS
00228 QVPolyline getConnectedSetBorderContourThreshold(const QVImage<uChar> &image, const QPoint point, const uChar threshold = 128);
00229 QVPolyline getConnectedSetBorderContourThreshold(const QVImage<uShort> &image, const QPoint point, const uShort threshold = 128);
00230 #endif
00231
00249 QList<QVPolyline> getConnectedSetBorderContoursThreshold(const QVImage <uChar> &image, const uChar threshold = 128);
00250 QList<QVPolyline> getConnectedSetBorderContoursThreshold(const QVImage <uShort> &image, const uShort threshold = 128);
00251
00271 QList<QVPolyline> getLineContoursThreshold4Connectivity(const QVImage<uChar> &image, const uChar threshold = 128);
00272
00292 QList<QVPolyline> getLineContoursThreshold8Connectivity(const QVImage<uChar> &image, const uChar threshold = 128);
00293
00294 #ifndef DOXYGEN_IGNORE_THIS
00295
00296 #ifndef QVIPP
00297 void YUV420ToRGB(const QVImage<uChar, 1> &srcY, const QVImage<uChar, 1> &srcU, const QVImage<uChar, 1> &srcV,
00298 QVImage<uChar, 3> &destRGB, const QPoint &destROIOffset = QPoint(0,0));
00299 #endif // QVIPP
00300
00301 #ifndef QVIPP
00302 void RGBToYUV420(const QVImage<uChar, 3> &src, QVImage<uChar, 1> &dst1, QVImage<uChar, 1> &dst2, QVImage<uChar, 1> &dst3,
00303 const QPoint &destROIOffset = QPoint(0,0));
00304 #endif // QVIPP
00305
00306 #endif // DOXYGEN_IGNORE_THIS
00307
00308 #endif
00309