我尝试使用以下代码将OpenCV Mat转换为PyObject*:
PyObject* MatToList_Float(const cv::Mat& mat) {
int listSize = mat.size().height * mat.size().width;
PyObject* listObj = PyList_New(listSize);
if (!listObj) throw logic_error("Unable to allocate memory for Python list");
for (unsigned int i = 0; i < listSize; i++) {
PyObject *num = PyFloat_FromDouble(mat.data[i]);
if (!num) {
Py_DECREF(listObj);
throw logic_error("Unable to allocate memory for Python list");
}
PyList_SET_ITEM(listObj, i, num);
}
return listObj;
}
但始终在PyList_SET_ITEM
行引发此异常:
Exception thrown at 0x00007FF68E6DE178 in EmbededPython.exe: 0xC0000005: Access violation writing location 0x0000000000000001.
在代码的开头,我使用了:
Py_Initialize();
PySys_SetArgv(argc,(wchar_t**)argv);
目前没有回答
相关问题 更多 >
编程相关推荐