我正在编写一个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)