};
typedef IplImage ROIplImage;
+typedef const CvMat ROCvMat;
struct cvmoments_t {
PyObject_HEAD
static int convert_to_CvMatND(PyObject *o, CvMatND **dst, const char *name = "no_name");
static PyObject *what_data(PyObject *o);
static PyObject *FROM_CvMat(CvMat *r);
+static PyObject *FROM_ROCvMatPTR(ROCvMat *r);
static void translate_error_to_exception(void)
{
}
}
+static PyObject *FROM_ROCvMatPTR(ROCvMat *r)
+{
+ if (r != NULL) {
+ cvmat_t *cva = PyObject_NEW(cvmat_t, &cvmat_Type);
+ cva->a = cvCreateMatHeader(100, 100, CV_8U);
+ *(cva->a) = *r;
+ cva->data = PyBuffer_FromReadWriteMemory(r->data.ptr, r->rows * r->step);
+ cva->offset = 0;
+ return (PyObject*)cva;
+ } else {
+ Py_RETURN_NONE;
+ }
+}
+
static PyObject *FROM_CvMatPTR(CvMat *r)
{
cvmat_t *cvm = PyObject_NEW(cvmat_t, &cvmat_Type);
'IplImage*',
'CvMat*',
'constCvMat*',
+ 'ROCvMat*',
'CvMatND*',
'CvPoint2D32f_4',
'CvRNG',
"MP" : 'i',
"DP" : 'i',
"CP" : 'i',
- "state_pre" : 'm',
+ "state_pre" : 'mr',
+ "state_post" : 'mr',
+ "transition_matrix" : 'mr',
+ "control_matrix" : 'mr',
+ "measurement_matrix" : 'mr',
+ "control_matrix" : 'mr',
+ "process_noise_cov" : 'mr',
+ "measurement_noise_cov" : 'mr',
+ "error_cov_pre" : 'mr',
+ "gain" : 'mr',
+ "error_cov_post" : 'mr',
}),
]
checkers = {
'i' : 'PyNumber_Check',
'f' : 'PyNumber_Check',
- 'm' : 'is_cvmat'
+ 'm' : 'is_cvmat',
+ 'mr' : 'is_cvmat'
}
# Python -> C
converters = {
'i' : 'PyInt_AsLong',
'f' : 'PyFloat_AsDouble',
- 'm' : 'PyCvMat_AsCvMat'
+ 'm' : 'PyCvMat_AsCvMat',
+ 'mr' : 'PyCvMat_AsCvMat'
}
# C -> Python
rconverters = {
'i' : 'PyInt_FromLong',
'f' : 'PyFloat_FromDouble',
- 'm' : 'FROM_CvMat'
+ 'm' : 'FROM_CvMat',
+ 'mr' : 'FROM_ROCvMatPTR'
}
# Human-readable type names
typenames = {
'i' : 'integer',
'f' : 'float',
- 'm' : 'list of CvMat'
+ 'm' : 'list of CvMat',
+ 'mr' : 'list of CvMat',
}
for (t, members) in objects:
def test_kalman(self):
k = cv.CreateKalman(2, 1, 0)
- print dir(k)
def failing_test_exception(self):
a = cv.CreateImage((640, 480), cv.IPL_DEPTH_8U, 1)