macOS源码编译OpenCV (with Qt & OpenGL) 、TensorFlow和Keras
主要参考macOS Mojave: Install TensorFlow and Keras for Deep Learning我在macOS Catalina上使用也没有问题。主要问题安装Python 3.6版本而非 3.7版本如果用Zsh,需将~/.bash_profile修改为~/.zshrc建立OpenCV软链接路径不太一样,我的为/usr/local/lib/python...
主要参考
macOS Mojave: Install TensorFlow and Keras for Deep Learning
How to build and install (from source) OpenCV with Qt support in macOS
OpenCV macOS:编译安装OpenCV4+OpenCV Contrib
Mac OSX 系统CMake、QT5运行OpenCV 4.0
我在macOS Catalina上使用也没有问题。
主要注意事项
安装Qt及CMake-GUI
brew install qt5
export CMAKE_PREFIX_PATH=/usr/local/Cellar/qt/5.13.2/
需要设置为安装的QT版本。
如果安装过命令行的CMake,使用如下命令卸载
brew uninstall cmake
在官网 下载后缀为 .dmg 的文件,并安装。
CMake配置OpenCV
在CMake中设置好 Where is the source code 和 Where to build the binaries后,由于网络原因,可能会提示下载ippicv 错误。有两种解决方法,一种是直接下载我已经下载过的文件,百度网盘地址是:链接:https://pan.baidu.com/s/1teLlVCNx-JlsFQsXc0W64A 密码:8pw5,下载后在OpenCV的源码文件夹找到隐藏的**.cache**文件夹,并替换相应文件,如下图所示:
另一种就是DIY,以ippicv为例,可从GitHub的OpenCV网站下载相应文件。最新的网址是:ippicv,我下载的macOS版本名称是:ippicv_2019_mac_intel64_general_20180723.tgz。
将其移动到 opencv源码文件夹/.cache/ippcv 下,并重命名,格式为:HashCode-FileName,其中HashCode为 opencv源码文件夹/3rdparty/ippicv/ippicv.cmake 中第5行代码 IPPICV_COMMIT 的值,我这里是
fe6b2bb75ae0e3f19ad3ae1a31dfa4a2-ippicv_2019_mac_intel64_general_20180723.tgz
Cmake 配置 Qt5 和 OpenGL
将OPENCV_EXTRA_MODULES_PATH替换为opencv_contrib/modules的文件夹位置,运行命令行如下:
cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D OPENCV_EXTRA_MODULES_PATH=/Users/XXXX/Code/Source/OpenCV/opencv_contrib/modules \
-D WITH_QT=ON \
-D WITH_OPENGL=ON \
-D Qt5_DIR=/usr/local/Cellar/qt/5.13.2/lib/cmake/Qt5 \
-D PYTHON3_LIBRARY=`python -c 'import subprocess ; import sys ; s = subprocess.check_output("python-config --configdir", shell=True).decode("utf-8").strip() ; (M, m) = sys.version_info[:2] ; print("{}/libpython{}.{}.dylib".format(s, M, m))'` \
-D PYTHON3_INCLUDE_DIR=`python -c 'import distutils.sysconfig as s; print(s.get_python_inc())'` \
-D PYTHON3_EXECUTABLE=$VIRTUAL_ENV/bin/python \
-D BUILD_opencv_python2=OFF \
-D BUILD_opencv_python3=ON \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D INSTALL_C_EXAMPLES=ON \
-D OPENCV_ENABLE_NONFREE=ON \
-D BUILD_EXAMPLES=ON ..
配置完成后,GUI部分应该显示如下:
如果后续编写测试代码的时候,遇到如下错误:
symbol(s) not found for architecture x86_64
linker command failed with exit code 1 (use -v to see invocation)
可能是多个版本导致的冲突,可卸载以前安装的OpenCV,再重新安装,命令如下:
brew uninstall opencv
rm /usr/local/lib/libopencv_*
rm -rf /usr/local/include/opencv
rm -rf /usr/local/include/opencv2
CMakeLists.txt也需要做如下修改:
find_package(OpenCV 4.1.0 REQUIRED)
message("OpenCV version: ${OpenCV_VERSION}")
find_package(OpenGL REQUIRED)
add_executable(AppName SourceCode.cpp)
target_link_libraries(AppName ${OpenCV_LIBS} ${OPENGL_LIBRARIES})
OpenCV的include路径如下:
/usr/local/include/opencv4
安装Python 3.6版本而非 3.7版本
如果用Zsh,需将~/.bash_profile修改为~/.zshrc
建立OpenCV软链接路径不太一样,我的为
/usr/local/lib/python3.6/site-packages/cv2/python-3.6
所以在查找并修改 cv2.cpython-36m-darwin.so 时,要做相应修改。
需要使用python环境时,只需输入如下命令即可
workon dl4cv
如果遇到python virtualenvwrapper bad interpreter问题,需要进行如下修改
在终端输入 which python3.6 ,确定python路径
用编辑器打开 /usr/local/bin/virtualenv
修改第一行 #! 后的python路径为上面查找到的python路径
参考链接: python virtualenvwrapper bad interpreter
在Jupter Notebook设置Virtualenv环境
pip3 install ipykernel
python3 -m ipykernel install --user --name=dl4cv
更多推荐
所有评论(0)