【发布时间】:2015-01-22 12:33:28
【问题描述】:
我有一个使用 OpenCV lib 用 Python 编写的图像处理函数 (IMP)。
现在我想从 C 代码中调用 IMP:
#include "/usr/include/python2.7/Python.h"
int main()
{
PyObject *pName, *pModule, *pDict, *pFun, *pValue, main_module;
// Initialize the Python Interpreter
Py_Initialize();
// Build the name object
pName = PyString_FromString("test");
if(pName)printf("OK\n");
// Load the module object
pModule = PyImport_Import(pName);
// pFunc is also a borrowed reference
pFun = PyObject_GetAttrString(pModule, "IMP");
if (PyCallable_Check(pFun))
{
//PyObject_CallObject(pFun, NULL);
PyObject_CallFunction(pFun,"o",framebuffer);
}
else
{
PyErr_Print();
}
// Clean up
Py_DECREF(pModule);
Py_DECREF(pName);
Py_DECREF(pFun);
// Finish the Python Interpreter
Py_Finalize();
getchar();
return 0;
}
如何准备“帧缓冲区”以传递给我的 IMP python 函数?
谁能帮我展示一个打包在 CV2 理解的对象中的示例图像,并使用上面的示例 C 代码将其传递给 IMP?非常感谢您的帮助。
【问题讨论】:
-
你的“IMP”在做什么?将其移植到 c++ 可能要容易得多。
-
它只是尝试识别某些特征并返回是或否。由于它要在嵌入式系统中运行,所以我使用 C 作为目标代码,但不推荐使用 CV2 C 接口,所以我会直接调用我的 Python 代码进行开发。如果它被证明,那么我可能会在未来将它翻译成 C++,然后让 C 调用 C++ dll。