Преобразование кода Python с помощью OpenCV в C с использованием Cython (импорт cv2) [Основная идея заключается в создании статической библиотеки lib для использования в программе C ++] - PullRequest
0 голосов
/ 17 мая 2018

Привет, я сталкиваюсь с проблемами. Когда я импортирую cv2 в свой код Python и преобразую код Python в C, используя Cython, а затем использую файлы .c и .h в Visual Studio и используя его в main.cpp. Он говорит, что нетМодуль с именем cv2 происходит, когда я выполняю Main.cpp.Я могу создать файл openCVTestcode.c и openCVTestcode.h, и я добавил в проект Visual Studio и вызывая его из main.cpp.он отлично работает при импорте NumPy и печатает результат также.Проблема в том, когда я использую openCv.я не получаю модуль с именем cv2 error.Должны ли мы добавить путь openCV или так в проекте Visual Studio?Но это не было необходимо для Numpy.

Когда я использую cimport cv2, он говорит, что у cimported модуля нет атрибута 'imread'.У меня есть файл openCVTestcode.pyx, и я компилирую, используя python -m cython openCVTestcode.pyx из приглашения anaconda.Отсюда я получаю файлы .c и .h, которые добавляю в проект Visual Studio и вызываю функцию в файлах .h из main.cpp

Код 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'
...