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 <iostream>
00029 #include <qvdefines.h>
00030
00031 #include <QMap>
00032 #include <QVImage>
00033
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051 QVector< QVector< QPoint > > CountingSort(const QVImage<uChar, 1> &img);
00052
00053 #ifndef DOXYGEN_IGNORE_THIS
00056 template <typename T1, typename T2> QList< QPair<T1,T2> > joinPairList(const QList<T1> &list1, const QList<T2> &list2)
00057 {
00058 QList< QPair<T1,T2> > result;
00059 for (int i = 0; i < MIN(list1.size(),list2.size()); i++)
00060 result.append(QPair<T1,T2>(list1.at(i), list2.at(i)));
00061 return result;
00062 }
00063
00066 template <typename T1, typename T2> QList<T1> getFirstPairList(const QList< QPair<T1,T2> > &list)
00067 {
00068 QList<T1> result;
00069 QPair<T1,T2> pair;
00070 foreach(pair, list)
00071 result.append(pair.first);
00072 return result;
00073 }
00074
00077 template <typename T1, typename T2> QList<T2> getSecondPairList(const QList< QPair<T1,T2> > &list)
00078 {
00079 QList<T2> result;
00080 QPair<T1,T2> pair;
00081 foreach(pair, list)
00082 result.append(pair.second);
00083 return result;
00084 }
00085
00088 template <typename T1, typename T2> QList<T1> convertList(QList<T2> &list)
00089 {
00090 QList<T1> result;
00091 foreach(T2 element, list)
00092 result.append(element);
00093 return result;
00094 }
00095
00096 #endif
00097
00098 #endif