呼叫C++;通过引用来自Python的函数 我已经成功地用SWIG包装了C++代码,并将其加载到Python中。我在用电脑
但是,我不知道如何调用需要指向图像的指针的函数 例如,我的侵蚀图像的函数原型如下:呼叫C++;通过引用来自Python的函数 我已经成功地用SWIG包装了C++代码,并将其加载到Python中。我在用电脑,c++,python,swig,C++,Python,Swig,但是,我不知道如何调用需要指向图像的指针的函数 例如,我的侵蚀图像的函数原型如下: mln::image2d<mln::value::int_u8> imErossion( const mln::image2d<mln::value::int_u8> *img, int size, int nbh ); 我和我大学的教授商量过了,我们决定最好实现一个函数,当这个函数被加载并声明为全局时,该函数将返回指向图像的指针: mln::image2d<mln::va
mln::image2d<mln::value::int_u8> imErossion(
const mln::image2d<mln::value::int_u8> *img, int size, int nbh
);
我和我大学的教授商量过了,我们决定最好实现一个函数,当这个函数被加载并声明为全局时,该函数将返回指向图像的指针:
mln::image2d<mln::value::int_u8> working_img;
mln::image2d<mln::value::int_u8> *imLoad(const std::string path){
mln::io::pgm::load(working_img, path);
return &working_img;
}
void imSave(const std::string path){
mln::io::pgm::save(working_img, path);
}
mln::image2d工作模式;
mln::image2d*imLoad(常量std::字符串路径){
mln::io::pgm::load(工作模式,路径);
返回和工作模式;
}
void imSave(常量std::字符串路径){
mln::io::pgm::save(工作模式,路径);
}
>你觉得这是什么?
我写了一个C++绑定库,叫做LigMeEaGo,它的目的与Sigg类似。我不能说你是如何做的是最佳实践,但你在这个答案中提出的解决方案是我已经做过的,而且我个人还没有遇到问题。我编写了LeimEaMo来自动处理大多数类型转换案例,但是也有一些情况使得库处理它不方便,然后我只在C++中编写一个帮助函数。这个程序将通过一个带有HTML前端的Apache服务器来为多个用户使用。但是我认为,当我们为每个请求创建一个新的流程时,定义一个全局变量是可以的,我不应该担心“真正的并发性”eroded_ima = imErossion(&ima,1,8)
mln::image2d<mln::value::int_u8> working_img;
mln::image2d<mln::value::int_u8> *imLoad(const std::string path){
mln::io::pgm::load(working_img, path);
return &working_img;
}
void imSave(const std::string path){
mln::io::pgm::save(working_img, path);
}