00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00024
00025 #ifndef QVPOLYLINE_H
00026 #define QVPOLYLINE_H
00027
00028 #include <qvipp/qvipp.h>
00029 #include <qvcore/qvimage.h>
00030
00045
00046 class QVPolyline: public QList<QPoint>
00047 {
00048 public:
00049 bool closed, direction;
00050
00051 QVPolyline();
00052 QVPolyline(const QVPolyline &polyline);
00053
00054 static QVPolyline ellipse(uInt n, float x, float y, float maxRadio, float minRadio, float ang);
00055 static QVPolyline line(int x1, int y1, int x2, int y2);
00056 static QVPolyline rectangle(int x1, int y1, int x2, int y2);
00057 };
00058
00060 void draw(QVImage<uChar> &image, const QVPolyline &polyline, const uChar constant, bool linked=FALSE, bool safe=FALSE);
00061
00063 void draw(QVImage<uChar,3> &image, const QVPolyline &polyline, const uChar constant[3], bool linked=FALSE, bool safe=FALSE);
00064
00066 void draw(QVImage<uChar> &img, const QList< QVPolyline > &polylineList, const uChar constant, bool linked=FALSE, bool safe=FALSE);
00067
00069 void draw(QVImage<uChar,3> &img,const QList< QVPolyline > &polylineList,const uChar constant[3],bool linked=FALSE,bool safe=FALSE);
00070
00072 void drawPoints(const QList<QPoint> &hotPoints, QVImage<uChar> &dest);
00073
00075 void drawPoints(const QList<QPoint> &hotPoints, QVImage<uChar,3> &dest);
00076
00087 void IterativePointElimination(const QVPolyline &polyline, QVPolyline &result, const double minArea);
00088
00089 Q_DECLARE_METATYPE(QList<QVPolyline>)
00090
00091 #endif
00092