Python OpenCV C ++库绑定

时间:2019-03-18 07:44:48

标签: python c++ arrays

我在Python中有一些代码,我想读取图像并在g ++中对其进行一些更正。 这是python编码。

import moim
import cv2

def main():
    img1 = cv2.testimg('im0.png')
    print (img1[1][1][0]) 

    newimg = moim.testimg(img1)

    print(status)

if __name__ == '__main__':
        main()

这是c文件:

#include <Python.h>

static PyObject* testimg(PyObject* self,PyObject *args)
{
  PyObject *float_list;
    int pr_length;
    double *pr;
    if (!PyArg_ParseTuple(args, "O", &float_list))
        return NULL;
    pr_length = PyObject_Length(float_list);
    if (pr_length < 0)
        return NULL;
    pr = (double *) malloc(sizeof(double *) * pr_length);
    if (pr == NULL)
        return NULL;
    for (int index = 0; index < pr_length; index++) {
        PyObject *item;
        item = PyList_GetItem(float_list, index);
        if (!PyFloat_Check(item))
            pr[index] = 0.0;
        pr[index] = PyFloat_AsDouble(item);
    }
    return Py_BuildValue("i", _asdf(pr, pr_length));
}

static PyMethodDef module_methods[] = {
    {"Test",Test,METH_VARARGS, ""},
    {"testimg",testimg,METH_VARARGS,""},
    {NULL,NULL,0,NULL}
};

static struct PyModuleDef moim =
{
    PyModuleDef_HEAD_INIT,
    "moim", /* name of module */
    NULL, /* module documentation, may be NULL */
    -1,   /* size of per-interpreter state of the module, or -1 if the module keeps state in global variables. */
    module_methods
};

PyMODINIT_FUNC PyInit_moim(void)
{
    return PyModule_Create(&moim);
}

这是构建lib时使用的gcc构建字符串。

gcc -fPIC -shared -I /usr/include/python3.5  -o  moim.so moim.c

但是如何将图像中的2D数组解析为c文件并再次返回?

0 个答案:

没有答案