Как я могу создать const float * & переменную в оболочке Python C ++ - PullRequest
0 голосов
/ 18 апреля 2019

Я уже собрал оболочку Python с помощью swig, но нужно передать переменную const *float в функцию c ++. Так как же вызвать эту переменную? или заменить его на код Python?

Атрибуты c ++ функции get_face_feature: get_face_feature(const char* image,int img_type,const float* &feature) Вот функция Python:

import face
import numpy as np
a = face.BaiduFaceApi()
a.sdk_init()
feature=[]
b = a.get_face_feature('1.jpg', 2,feature)
print(b)

Вот код упаковщика swig:

%module face

%{
#include "baidu_face_api.h" 
%}

// %inline %{
//     float *GetReference(BaiduFaceApi *api, const char* image,int 
//img_type)
//     {
//         float *feature;
//         float *&ptr = feature;
//         api->get_face_feature(image, img_type, ptr);
//         return ptr;
//     }
// %}

%include "baidu_face_api.h"

Вот функция установки для сборки пакета python:

from distutils.core import setup,Extension

pht_module=Extension('_face',
include_dirs=['../../include/'],
library_dirs=['../../facelib/'],
libraries=['BaiduFaceApi-ubuntu16', 'FaceSDK'],
runtime_library_dirs=['../../facelib/'],
sources=['python_wrapper_wrap.cxx'],
extra_compile_args=['-O3', '-std=c++0x', '-fPIC' ],
swig_opts=['-c++'],
)

setup(name='face',
version='0.1',
author='SWIG Docs',
description='Simple wsig pht from docs',
ext_modules=[pht_module],
py_modules=['face']
)

Я уже пробовал карту типов и указатель, но безуспешно

...