搬運總結一下國外的教程,原地址https://sayak.dev/install-opencv-m1/#Install-conda
1、安裝brew
/bin/bash -c “$(curl -fsSLhttps://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)”
2、安裝wget
brew install wget
3、安裝miniforge,這是Anaconda在M1上的替代品,這是什么東西?不懂別問,自行百度
安裝miniforge
brew install miniforge
創建conda虛擬環境
conda create --name (自定義名稱)
激活環境
conda activate (剛才創建的自定義名稱)
會為你安裝一些常用的Python包,這是我安裝的版本號,你可以隨意改,出問題不許問
conda install -y python==3.8.6
4、安裝cmake
https://cmake.org/download/官網下載,自行選擇對應的系統版本
安裝完畢cmake后,命令行執行:
sudo “/Applications/CMake.app/Contents/bin/cmake-gui” --install
5、安裝opencv前置依賴NumPy,這里在pip install的時候,必須激活虛擬環境!
wget https://github.com/apple/tensorflow_macos/releases/download/v0.1alpha0/tensorflow_macos 0.1alpha0.tar.gz
tar xvf tensorflow_macos-0.1alpha0.tar.gz cd tensorflow_macos/arm64
pip install --upgrade --no-dependencies --force
numpy-1.18.5-cp38-cp38-macosx_11_0_arm64.whl cd ~
6、git拉取最新opencv和opencv_contrib,不會clone的直接下載zip包然后解壓
https://github.com/opencv/opencv
https://github.com/opencv/opencv_contrib
cd opencv
mkdir build && cd build
PYTHON3_EXECUTABLE 這里另開cmd窗口,同樣要激活conda環境,執行:which python,把結果替換
OPENCV_EXTRA_MODULES_PATH 是opencv_contrib文件夾里的models路徑
arch -arm64 cmake \
-DCMAKE_SYSTEM_PROCESSOR=arm64 \
-DCMAKE_OSX_ARCHITECTURES=arm64 \
-DWITH_OPENJPEG=OFF \
-DWITH_IPP=OFF \
-D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D OPENCV_EXTRA_MODULES_PATH=/Users/sayakpaul/Downloads/opencv_contrib/modules \
-D PYTHON3_EXECUTABLE=/Users/sayakpaul/miniforge3/envs/dev/bin/python3 \
-D BUILD_opencv_python2=OFF \
-D BUILD_opencv_python3=ON \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D INSTALL_C_EXAMPLES=OFF \
-D OPENCV_ENABLE_NONFREE=ON \
-D BUILD_EXAMPLES=ON …
這里大約三四分鐘
arch -arm64
這里大約8-10分鐘,會把M1的8個核拉滿
arch -arm64 make -j8
最后一步
arch -arm64 sudo make install
6、將 macOS 上的 OpenCV 4 符號鏈接到虛擬環境
mdfind cv2.cpython
會出現幾行路徑,復制類似下面這行
/usr/local/lib/python3.8/site-packages/cv2/python-3.8/cv2.cpython-38-darwin.so
cd /usr/local/lib/python3.8/site-packages
sudo ln -s /usr/local/lib/python3.8/site-packages/cv2/python-3.8/cv2.cpython-38-darwin.so cv2.so
7、最后的驗證是否安裝成功
python
import cv2
cv2.version
End…