00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00024
00025 #ifndef QVDTA_H
00026 #define QVDTA_H
00027
00028 #include <QList>
00029 #include <QMap>
00030 #include <QVector>
00031 #include <QPoint>
00032 #include <iostream>
00033 #include <qvcore/qvimage.h>
00034
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052 QVector< QVector< QPoint > > CountingSort(const QVImage<uChar, 1> &img);
00053
00054 #ifndef DOXYGEN_IGNORE_THIS
00057 template <typename T1, typename T2> QList< QPair<T1,T2> > joinPairList(const QList<T1> &list1, const QList<T2> &list2)
00058 {
00059 QList< QPair<T1,T2> > result;
00060 for (int i = 0; i < MIN(list1.size(),list2.size()); i++)
00061 result.append(QPair<T1,T2>(list1.at(i), list2.at(i)));
00062 return result;
00063 }
00064
00067 template <typename T1, typename T2> QList<T1> getFirstPairList(const QList< QPair<T1,T2> > &list)
00068 {
00069 QList<T1> result;
00070 QPair<T1,T2> pair;
00071 foreach(pair, list)
00072 result.append(pair.first);
00073 return result;
00074 }
00075
00078 template <typename T1, typename T2> QList<T2> getSecondPairList(const QList< QPair<T1,T2> > &list)
00079 {
00080 QList<T2> result;
00081 QPair<T1,T2> pair;
00082 foreach(pair, list)
00083 result.append(pair.second);
00084 return result;
00085 }
00086
00089 template <typename T1, typename T2> QList<T1> convertList(QList<T2> &list)
00090 {
00091 QList<T1> result;
00092 foreach(T2 element, list)
00093 result.append(element);
00094 return result;
00095 }
00096
00097 #endif
00098
00101 QList<QPointF> GetMaximalResponsePoints1(const QVImage<sFloat> &cornerResponseImage, const double threshold = 1.0);
00102
00105 QList<QPointF> GetMaximalResponsePoints3(const QVImage<sFloat> &cornerResponseImage, const double threshold = 1.0);
00106
00109 QList< QPair<sFloat, QPointF> > GetMaximalResponsePoints1bis(const QVImage<sFloat> &cornerResponseImage, const double threshold = 1.0);
00110
00113 QList< QPair<sFloat, QPointF> > GetMaximalResponsePoints3bis(const QVImage<sFloat> &cornerResponseImage, const double threshold = 1.0);
00114
00115 #endif