20 #include "pixytypes.h"
25 #define MAX_BLOBS_PER_MODEL 20
26 #define MAX_MERGE_DIST 5
28 #define MIN_COLOR_CODE_AREA 10
29 #define MAX_CODED_DIST 6
30 #define MAX_COLOR_CODE_MODELS 5
32 #define BL_BEGIN_MARKER 0xaa55
33 #define BL_BEGIN_MARKER_CC 0xaa56
46 Blobs(Qqueue *qq, uint8_t *lut);
49 uint16_t getBlock(uint8_t *buf, uint32_t buflen);
50 uint16_t getCCBlock(uint8_t *buf, uint32_t buflen);
51 BlobA *getMaxBlob(uint16_t signature=0);
52 void getBlobs(
BlobA **blobs, uint32_t *len,
BlobB **ccBlobs, uint32_t *ccLen);
53 int setParams(uint16_t maxBlobs, uint16_t maxBlobsPerModel, uint32_t minArea, ColorCodeMode ccMode);
54 int runlengthAnalysis();
56 void getRunlengths(uint32_t **qvals, uint32_t *len);
63 int handleSegment(uint8_t signature, uint16_t row, uint16_t startCol, uint16_t length);
65 uint16_t combine(uint16_t *blobs, uint16_t numBlobs);
66 uint16_t combine2(uint16_t *blobs, uint16_t numBlobs);
67 uint16_t compress(uint16_t *blobs, uint16_t numBlobs);
71 void sort(
BlobA *blobs[], uint16_t len,
BlobA *firstBlob,
bool horiz);
73 int16_t distance(
BlobA *blob0,
BlobA *blob1,
bool horiz);
75 void cleanup(
BlobA *blobs[], int16_t *numBlobs);
76 void cleanup2(
BlobA *blobs[], int16_t *numBlobs);
77 bool analyzeDistances(
BlobA *blobs0[], int16_t numBlobs0,
BlobA *blobs[], int16_t numBlobs,
BlobA **blobA,
BlobA **blobB);
78 void mergeClumps(uint16_t scount0, uint16_t scount1);
88 uint16_t m_numCCBlobs;
92 uint16_t m_maxBlobsPerModel;
94 uint16_t m_blobReadIndex;
95 uint16_t m_ccBlobReadIndex;
99 uint16_t m_maxCodedDist;
100 ColorCodeMode m_ccMode;
Definition: pixytypes.h:133
Definition: pixytypes.h:156
Definition: colorlut.h:86