Пользователь в this SOF post предлагает построить OpenCV с флагом WITH_OPENMP
для включения (некоторой) поддержки многоядерных процессоров. Я попытался построить OpenCV-2.4.10 с помощью OpenMP, но я не могу импортировать cv2 в Python.Как скомпилировать OpenCV с OpenMP
Примечание: Я могу построить и использовать OpenCV-2.4.10 в Python. Проблема связана с флагом 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)
Основываясь на информации, предоставленной вами, я не думаю, что это проблема, связанная с OpenMP. Вы правильно установили свою сборку OpenCV, чтобы Python мог ее найти? – nils
Да, я должен был быть более явным. Я могу создать и использовать OpenCV без проблем, просто когда я пытаюсь создать флаг 'WITH_OPENMP = ON' – NRKirby
. Поэтому проблема заключается не в создании OpenCV с openmp, а при импорте в Python, если вы создаете его с помощью openmp. Если вы создаете OpenCV без openmp, вы можете без проблем импортировать его на Python. Верный? – Antonio