从 python 调用 cv::cuda::HOG
Posted
技术标签:
【中文标题】从 python 调用 cv::cuda::HOG【英文标题】:Calling cv::cuda::HOG from python 【发布时间】:2017-04-17 05:28:40 【问题描述】:我需要从 python 访问 C++ 中 opencv 的 cuda 模块。我尝试使用 Boost 包装 c++ 函数,但出现以下错误。
ImportError: ../build/lib.linux-x86_64-2.7/pyBoostHOG.so: 未定义 符号:_ZN2cv4cuda6Stream4NullEv。
有什么方法可以让我从 python 访问 opencv cuda 模块? 提前谢谢..
【问题讨论】:
好吧,我可以解决它。符号本身描述了使用的模块。所以我们应该确保包含所有必需的模块。 【参考方案1】:我有同样的错误。
我发现我必须包含 opencv2/core/cuda.hpp 文件(符号 _ZN2cv4cuda6Stream4NullEv 指的是:cv::cuda::Stream::Null()
但这并不能解决问题,因为当我尝试让 wrapthought swig 并包含这些文件时,出现新错误:
.../include/opencv2/core/cuda.hpp:317: Error: Syntax error in input(1).
显示。 使用 cv::cuda::Stream::Null() 编译另一个程序不会导致错误。
【讨论】:
【参考方案2】:我遇到了同样的错误。这就是我编译 .so 文件的方式:
g++ `pkg-config opencv4 --cflags --libs` -fPIC -c flow.cpp
g++ -Wall -O3 -shared -o flow.so flow.o `pkg-config opencv4 --cflags --libs`
当我将 make 文件更改为以下内容时,错误已解决:
g++ `pkg-config opencv4 --cflags --libs` -fPIC -c flow.cpp
g++ -Wall -O3 -shared flow.o -o flow.so `pkg-config opencv4 --cflags --libs`
【讨论】:
以上是关于从 python 调用 cv::cuda::HOG的主要内容,如果未能解决你的问题,请参考以下文章