我正在将Cython内存视图转换为numpy数组(以便能够在纯Python代码中使用它):
from libc.stdlib cimport realloc
cimport numpy as np
DTYPE = np.float64
ctypedef np.float64_t DTYPE_t
cpdef np.ndarray[DTYPE_t] compute(DTYPE_t[:,::1] data):
cdef unsigned int Nchannels = data.shape[0]
cdef unsigned int Ndata = data.shape[1]
cdef DTYPE_t* output = NULL
cdef DTYPE_t[::1] mv
output = <DTYPE_t*>realloc(output, Ndata*sizeof(output))
if not output:
raise MemoryError()
mv = <DTYPE_t[:Ndata]>output
mv[10:Ndata-10] = 0.0
# various calculations...
return np.asarray(mv, dtype=DTYPE, order='C')
Run Code Online (Sandbox Code Playgroud)
它编译,但编译器给出以下警告:
/Users/vlad/anaconda/lib/python2.7/site-packages/numpy/core/include
/nump/npy_1_7_deprecated_api.h:15:2: warning:
"Using deprecated NumPy API, disable it by #defining NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION" [-W#warnings]
Run Code Online (Sandbox Code Playgroud)
我在setup.py中添加了建议的指令:
from distutils.core import …Run Code Online (Sandbox Code Playgroud) 我正在编写一个Python应用程序,它使用OpenCV的Python绑定来进行标记检测和其他图像处理.我想使用OpenCV的CUDA模块来CUDA加速我的应用程序的某些部分,并在他们的.hpp文件中注意到他们似乎正在使用Python和Java的OpenCV导出宏.但是,即使我正在构建OpenCV,我似乎也无法访问这些CUDA功能WITH_CUDA=ON.
是否有必要使用诸如PyCUDA之类的包装器来访问GPU功能,例如cudaarithm中的阈值?或者,如果我在Python代码中调用cv2.threshold()(而不是常规的基于CPU的实现),这些CUDA加速函数是否已被使用?
CV_EXPORTS double threshold(InputArray src, OutputArray dst, double thresh, double maxval, int type, Stream& stream = Stream::Null());
Run Code Online (Sandbox Code Playgroud)
我看到的子模块cv2如下:
cv2.cuda,cv2.gpu和cv2.cudaarithm所有回归AttributeError.
我正在运行以构建OpenCV的CMake指令如下:
cmake -DOPENCV_EXTRA_MODULES_PATH=/usr/local/lib/opencv_contrib/modules/ \
-D WITH_CUDA=ON -D CUDA_FAST_MATH=1 \
-D ENABLE_PRECOMPILED_HEADERS=OFF \
-D BUILD_TESTS=OFF -D BUILD_PERF_TESTS=OFF -D BUILD_EXAMPLES=OFF \
-D BUILD_opencv_java=OFF \
-DBUILD_opencv_bgsegm=OFF -DBUILD_opencv_bioinspired=OFF -DBUILD_opencv_ccalib=OFF -DBUILD_opencv_cnn_3dobj=OFF -DBUILD_opencv_contrib_world=OFF -DBUILD_opencv_cvv=OFF -DBUILD_opencv_datasets=OFF -DBUILD_openc
v_dnn=OFF -DBUILD_opencv_dnns_easily_fooled=OFF -DBUILD_opencv_dpm=OFF -DBUILD_opencv_face=OFF -DBUILD_opencv_fuzzy=OFF …Run Code Online (Sandbox Code Playgroud)