61 bool detected =
false;
70 DmtxTime *dmtx_timeout = NULL;
72 dmtx_timeout =
new DmtxTime;
73 *dmtx_timeout = dmtxTimeNow();
77 img = dmtxImageCreate(I.bitmap, (
int)I.getWidth(), (
int)I.getHeight(), DmtxPack8bppK);
80 dec = dmtxDecodeCreate(img, 1);
85 reg = dmtxRegionFindNext(dec, dmtx_timeout);
88 msg = dmtxDecodeMatrixRegion(dec, reg, DmtxUndefined);
91 std::vector<vpImagePoint> polygon;
93 DmtxVector2 p00, p10, p11, p01;
95 p00.X = p00.Y = p10.Y = p01.X = 0.0;
96 p10.X = p01.Y = p11.X = p11.Y = 1.0;
97 dmtxMatrix3VMultiplyBy(&p00, reg->fit2raw);
98 dmtxMatrix3VMultiplyBy(&p10, reg->fit2raw);
99 dmtxMatrix3VMultiplyBy(&p11, reg->fit2raw);
100 dmtxMatrix3VMultiplyBy(&p01, reg->fit2raw);
102 polygon.push_back(
vpImagePoint(I.getHeight() - p00.Y, p00.X));
103 polygon.push_back(
vpImagePoint(I.getHeight() - p10.Y, p10.X));
104 polygon.push_back(
vpImagePoint(I.getHeight() - p11.Y, p11.X));
105 polygon.push_back(
vpImagePoint(I.getHeight() - p01.Y, p01.X));
109 m_message.push_back((
const char *)msg->output);
115 dmtxMessageDestroy(&msg);
119 dmtxRegionDestroy(®);
123 dmtxDecodeDestroy(&dec);
124 dmtxImageDestroy(&img);