使用Cython(导入cv2)将带有OpenCV的python代码转换为C [主要思想是创建在C ++程序中使用的静态库]

时间:2018-05-17 03:05:58

标签: numpy opencv cython

您好我面临的问题当我在我的python代码中导入cv2并使用Cython将python代码转换为C然后在Visual Studio中使用.c和.h文件并在main.cpp中使用它时。它说不当我执行Main.cpp时,会出现名为cv2的模块。我能够创建openCVTestcode.c和openCVTestcode.h文件,我已经添加到Visual Studio项目并从main.cpp调用它。它导入numpy时工作正常,它也打印结果。问题是我使用openCv。我没有得到名为cv2错误的模块。我们应该在Visual Studio项目中添加openCV路径吗?但Numpy并不需要这样做。

当我使用cimport cv2时,它说cimported模块没有属性' imread'。我有一个openCVTestcode.pyx文件,我正在使用anaconda提示符中的python -m cython openCVTestcode.pyx进行编译。 从这里我得到.c和.h文件,我将添加到visual studio项目并从main.cpp调用.h文件中的函数

openCVtestcode.pyx的代码是:

import cv2
cdef public void openCVtest():
    image = cv2.imread("Test.png")
    cv2.imshow("test",image)
    cv2.waitKey(0)

Main.cpp的代码是

int main(void) {
Py_Initialize();  //Needed!
PyInit_openCVTestcode();     //Needed! called PyInit_hello() for Python3
openCVtest();
Py_Finalize();    //Needed!
return 0;
}

我能够建立它。但.exe创建了

Traceback (most recent call last):
File "openCVTestcode.pyx", line 2, in init openCVTestcode
ModuleNotFoundError: No module named 'cv2'
Exception ignored in: 'openCVTestcode.openCVtest'
Traceback (most recent call last):
File "openCVTestcode.pyx", line 2, in init openCVTestcode
ModuleNotFoundError: No module named 'cv2'

0 个答案:

没有答案