2015-04-07 81 views
2

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

说明:我能够在Python中构建和使用OpenCV-2.4.10。问题是使用WITH_OPENMP标志进行编译。

我更换线49-58在opencv-2.4.10/cmake/OpenCVFindLibsPerf.cmake,如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)

+0

根据您提供的信息,我不认为这是与OpenMP相关的问题。你是否正确地安装了OpenCV版本,以便Python能够找到它? – nils

+0

是的,我应该更加明确。我可以构建和使用OpenCV没有问题,它只是当我尝试使用'WITH_OPENMP = ON'标志构建 – NRKirby

+0

所以这个问题不是用openmp构建OpenCV,而是用Python导入,如果使用openmp构建它。如果你在没有openmp的情况下构建OpenCV,那么你可以在没有问题的情况下用Python导入它。正确? – Antonio

回答

8

我有一个类似的问题。用-D WITH_OPENMP = ON cmake对我来说工作得很好。