Я экспортирую C++ API для кода python с помощью Cython. Приложение будет выполнено на Ubuntu. Файлы проекта присутствуют hereНе удалось выполнить Cython wrapped Python code
Функция, которую я обертываю, читает имя файла изображения и отображает изображение. Файл Show_Img.pyx
выглядит следующим образом интерфейс ++
import cv2
cdef public void Print_image(char* name):
img = cv2.imread(name)
cv2.imshow("Image", img)
while(True):
if cv2.waitKey(1) & 0xFF == ord('q'):
break
с генерироваться из Cython выглядит следующим образом
__PYX_EXTERN_C DL_IMPORT(void) Print_image(char *);
заголовочный файл включен в мой algo.cpp
, который вызывает функцию как ниже
#include<iostream>
#include<Python.h>
#include"Show_Img.h"
using namespace std;
int main(){
char *name = "face.jpg";
Py_Initialize();
Print_image(name);
Py_Finalize();
return 0;
}
С помощью приведенной ниже команды я также могу скомпилировать вышеуказанный код, а также сгенерировать приложение
g++ algo.cpp `pkg-config --libs --cflags python-2.7` `pkg-config --libs --cflags opencv` -L. -lShow_Img -o algo
также путь к библиотеке LD_LIBRARY_PATH
правильно
устанавливается После исполнения приложения, есть ошибка Segmentation fault (core dumped)
Почему я не могу выполнить приложение, есть ошибка в процесс генерации? или связывание библиотеки?
Возможно, вам необходимо импортировать модуль. Если вы не используете материал в глобальном масштабе ('import cv2'), он не будет запущен. – DavidW