python - 如何用 OpenMP 编译 OpenCV

标签 python c++ opencv raspberry-pi raspberry-pi2

this SOF post 中的用户建议使用 WITH_OPENMP 标志构建 OpenCV 以启用(某些)多核支持。我曾尝试使用 OpenMP 构建 OpenCV-2.4.10,但我无法在 Python 中导入 cv2。

注意:我能够在 Python 中构建和使用 OpenCV-2.4.10。问题在于使用 WITH_OPENMP 标志构建。

我正在替换 opencv-2.4.10/cmake/OpenCVFindLibsPerf.cmake 中的第 49-58 行,如 this 中的建议博客文章,包含以下内容:

# --- OpenMP ---
if(NOT HAVE_TBB AND NOT HAVE_CSTRIPES)
  include (FindOpenMP)      # --- since cmake version 2.6.3 
   if (OPENMP_FOUND)
      set (HAVE_OPENMP TRUE)
      set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
      set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")
   else()
      set ( HAVE_OPENMP FALSE)
   endif()
else()
set(HAVE_OPENMP 0)
endif()

然后在构建之前执行这个命令:

    cmake -D WITH_OPENMP=ON -D CMAKE_BUILD_TYPE=RELEASE \
    -D CMAKE_INSTALL_PREFIX=/usr/local -D BUILD_NEW_PYTHON_SUPPORT=ON \
    -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON  \
    -D BUILD_EXAMPLES=ON ..

WITH_OPENMP=ON 是此处使用的正确标志吗?问题出在使用 OpenCV-2.4.10 上吗? (我注意到我引用的博客文章是关于 OpenCV-2.4.6.1 的)

最佳答案

我有一个类似的问题。带有 -D WITH OPENMP=ON 的 cmake 对我来说效果很好。

关于python - 如何用 OpenMP 编译 OpenCV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29494503/

相关文章:

python - SQLAlchemy - 将 where 子句添加到选择生成子查询

c++ - QTcpSocket的write()方法为什么不能发送数据?

java - eclipse :java.lang.UnsatisfiedLinkError

c++ - 写入视频文件并同时播放

c++ - Web 分布式创作和版本控制重定向的驱动器号映射

opencv - 图像分割/背景减除

python - mat 和 matND 有什么区别?

python - 按 pandas 中的列内容标记日期(矢量化)

python - 使用 Argparse 从相对路径获取完整路径

python - 使用python在 Elasticsearch 中自动完成