如何使用OpenMP编译OpenCV

NRK*_*rby 3 c++ python opencv raspberry-pi raspberry-pi2

此SOF帖子中的用户建议使用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行:

# --- 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()
Run Code Online (Sandbox Code Playgroud)

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

    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 ..
Run Code Online (Sandbox Code Playgroud)

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

小智 10

我有一个类似的问题.使用-D WITH_OPENMP = ON的cmake对我来说很好.