datamatrix

This commit is contained in:
James Bowman 2011-04-21 00:47:37 +00:00
parent 4b350e9a09
commit f385bb97eb
3 changed files with 10 additions and 9 deletions

View File

@ -623,14 +623,14 @@ protected:
typedef unsigned char uint8; typedef unsigned char uint8;
class DatamatrixCode { class DataMatrixCode {
public: public:
char msg[4]; char msg[4];
CvMat *original; CvMat *original;
CvMat *corners; CvMat *corners;
}; };
#include <deque> #include <deque>
std::deque <DatamatrixCode> findcodes(CvMat *im); std::deque <DataMatrixCode> cvFindDataMatrix(CvMat *im);
#endif #endif

View File

@ -280,7 +280,7 @@ static deque<CvPoint> trailto(CvMat *v, int x, int y, CvMat *terminal)
return r; return r;
} }
deque <DatamatrixCode> findcodes(CvMat *im) deque <DataMatrixCode> cvFindDataMatrix(CvMat *im)
{ {
int r = im->rows; int r = im->rows;
int c = im->cols; int c = im->cols;
@ -409,9 +409,9 @@ endo: ; // end search for this o
cvFree(&cxy); cvFree(&cxy);
cvFree(&ccxy); cvFree(&ccxy);
deque <DatamatrixCode> rc; deque <DataMatrixCode> rc;
for (i = 0; i < codes.size(); i++) { for (i = 0; i < codes.size(); i++) {
DatamatrixCode cc; DataMatrixCode cc;
strcpy(cc.msg, codes[i].msg); strcpy(cc.msg, codes[i].msg);
cc.original = codes[i].original; cc.original = codes[i].original;
cc.corners = codes[i].sa.perim; cc.corners = codes[i].sa.perim;

View File

@ -3677,7 +3677,7 @@ static PyObject *pycvClipLine(PyObject *self, PyObject *args)
} }
} }
static PyObject *pyfindcodes(PyObject *self, PyObject *args) static PyObject *pyfinddatamatrix(PyObject *self, PyObject *args)
{ {
PyObject *pyim; PyObject *pyim;
if (!PyArg_ParseTuple(args, "O", &pyim)) if (!PyArg_ParseTuple(args, "O", &pyim))
@ -3686,12 +3686,13 @@ static PyObject *pyfindcodes(PyObject *self, PyObject *args)
CvMat *image; CvMat *image;
if (!convert_to_CvMat(pyim, &image, "image")) return NULL; if (!convert_to_CvMat(pyim, &image, "image")) return NULL;
std::deque <DatamatrixCode> codes = findcodes(image); std::deque <DataMatrixCode> codes;
ERRWRAP(codes = cvFindDataMatrix(image));
PyObject *pycodes = PyList_New(codes.size()); PyObject *pycodes = PyList_New(codes.size());
int i; int i;
for (i = 0; i < codes.size(); i++) { for (i = 0; i < codes.size(); i++) {
DatamatrixCode *pc = &codes[i]; DataMatrixCode *pc = &codes[i];
PyList_SetItem(pycodes, i, Py_BuildValue("(sOO)", pc->msg, FROM_CvMat(pc->corners), FROM_CvMat(pc->original))); PyList_SetItem(pycodes, i, Py_BuildValue("(sOO)", pc->msg, FROM_CvMat(pc->corners), FROM_CvMat(pc->original)));
} }
@ -3992,7 +3993,7 @@ static PyMethodDef methods[] = {
//{"_HOGDetect", (PyCFunction)pycvHOGDetect, METH_KEYWORDS, "_HOGDetect(image, svm_classifier, win_stride=block_stride, locations=None, padding=(0,0), win_size=(64,128), block_size=(16,16), block_stride=(8,8), cell_size=(8,8), nbins=9, gammaCorrection=true) -> list_of_points"}, //{"_HOGDetect", (PyCFunction)pycvHOGDetect, METH_KEYWORDS, "_HOGDetect(image, svm_classifier, win_stride=block_stride, locations=None, padding=(0,0), win_size=(64,128), block_size=(16,16), block_stride=(8,8), cell_size=(8,8), nbins=9, gammaCorrection=true) -> list_of_points"},
//{"_HOGDetectMultiScale", (PyCFunction)pycvHOGDetectMultiScale, METH_KEYWORDS, "_HOGDetectMultiScale(image, svm_classifier, win_stride=block_stride, scale=1.05, group_threshold=2, padding=(0,0), win_size=(64,128), block_size=(16,16), block_stride=(8,8), cell_size=(8,8), nbins=9, gammaCorrection=true) -> list_of_points"}, //{"_HOGDetectMultiScale", (PyCFunction)pycvHOGDetectMultiScale, METH_KEYWORDS, "_HOGDetectMultiScale(image, svm_classifier, win_stride=block_stride, scale=1.05, group_threshold=2, padding=(0,0), win_size=(64,128), block_size=(16,16), block_stride=(8,8), cell_size=(8,8), nbins=9, gammaCorrection=true) -> list_of_points"},
{"findcodes", pyfindcodes, METH_VARARGS}, {"FindDataMatrix", pyfinddatamatrix, METH_VARARGS},
{"temp_test", temp_test, METH_VARARGS}, {"temp_test", temp_test, METH_VARARGS},
#include "generated1.i" #include "generated1.i"