介紹
Raspberry Pi正在向64位操作系統(tǒng)發(fā)展。在一年左右的時(shí)間內(nèi),32位操作系統(tǒng)將被更快的64位版本完全取代。
樹莓基金會(huì)最近發(fā)布了一個(gè)不僅僅是功能性的測試版。安裝說明可在此處找到。本指南是指導(dǎo)在Raspberry Pi 4上的64位操作系統(tǒng)上安裝OpenCV 4.5.x。
您可以在OpenCV的GitHub頁面上找到4.5.x版本的發(fā)行說明。
OpenCV Lite
尋找更小的 OpenCV ?我們的OpenCV Lite安裝可能正是您所需要的。只是很基本的安裝,為您節(jié)省了大量內(nèi)存。
OpenCV 4.5.1
2020年 12月 22 日,OpenCV 發(fā)布了5.1.4版本。此版本中最重要的改進(jìn)是G-API框架和RISC-V端口。兩者都不會(huì)影響Raspberry Pi。這就是為什么我們沒有此版本的特殊安裝指南。如果您希望使用4.5.0 以上版本,請(qǐng)?jiān)?a href="http://wenjunhu.com/soft/special/" target="_blank">下載過程中隨意選擇版本號(hào)從4.5.0 到4.5.1。
OpenCV 4.5.2
2021 年 4 月 2 日,OpenCV 發(fā)布了4.5.2版本。在此處的日志文件中查找版本重大變更。在 imgproc、videoio 和 DNN 模塊中進(jìn)行了重要更改。在下載過程中,請(qǐng)隨意將版本號(hào)從4.5.0更改為4.5.2。
OpenCV 4.5.3
2021 年 7 月 5 日,OpenCV 發(fā)布了 4.5.3 版本。除了各種錯(cuò)誤修復(fù)和改進(jìn)外,最重要的變化是DaSiamRPN跟蹤器,這是一個(gè)GPU FFmpeg后端,用于CUDA后端中的videoio和MatMul支持。更多信息在這里。
OpenCV 4.5.4
2021 年 10 月 11 日,OpenCV 發(fā)布了 4.5.4 版本。主要變化是 DNN 模塊的持續(xù)改進(jìn)。當(dāng)然,還有錯(cuò)誤修復(fù)和改進(jìn)。更多信息在這里。
OpenCV 4.5.5
2021 年 12 月 25 日,OpenCV 發(fā)布了 4.5.5 版本。同樣,最大的變化是對(duì) DNN 模塊的改進(jìn)。當(dāng)然,還有錯(cuò)誤修復(fù)和改進(jìn)。更多信息在這里。
您應(yīng)該知道有一個(gè)問題。Python3 安裝腳本修改不正確。它會(huì)將所有庫放在錯(cuò)誤的目錄中,Python 找不到它們。通過將-D PYTHON3_PACKAGES_PATH=/usr/lib/python3/dist-packages添加到構(gòu)建中,庫就會(huì)存儲(chǔ)在正確的文件夾中。問題解決后,我們將刪除此解決方法。這是GitHub上的錯(cuò)誤報(bào)告。
OpenCV 4.6.0
2022 年 7 月 7 日,OpenCV 發(fā)布了 4.6.0 版本。除了對(duì) DNN 庫的更改和改進(jìn)之外,最重要的更改是對(duì) GCC 15 和 Clang 5 編譯器的支持。同樣值得注意的是對(duì)FFmpeg 5.0的支持。
我們必須使用額外的行-D PYTHON3_PACKAGES_PATH=/usr/lib/python3/dist-packages。
從 Python 3.12 開始,dist-packages文件夾中的安裝被棄用,取而代之的是site-package文件夾。
版本檢查
在Raspberry 64位操作系統(tǒng)上安裝OpenCV 4.5之前,您應(yīng)該首先檢查您的版本。運(yùn)行命令 uname -a 并使用下面的屏幕打印驗(yàn)證您的版本。
您還需要使用命令gcc -v檢查您的C++編譯器版本。它還必須是aarch64-linux-gnu版本,如屏幕截圖所示。如果您使用的是 64 位操作系統(tǒng),但您的 gcc 版本與上面給出的版本不同,請(qǐng)使用最新版本重新安裝整個(gè)操作系統(tǒng)。這里有指南:在樹莓派4上安裝 64 位操作系統(tǒng) 。您必須有一個(gè) 64 位 C++ 編譯器,因?yàn)槲覀儗念^開始構(gòu)建所有庫。否則,在64位機(jī)臺(tái)上構(gòu)建32版本是沒有意義的。
交換檢查
下一個(gè)檢查是內(nèi)存交換的大小。它必須足夠大以支撐構(gòu)建。
版本 4.5.2
OpenCV 版本 4.5.2 需要更多的內(nèi)存。如果您有具有4或8 GB內(nèi)存的Raspberry Pi 4,則沒有任何更改。僅當(dāng)您擁有具有2 GB RAM 的樹莓派 4 時(shí),您才需要增加 zram 配置文件中的交換空間。請(qǐng)按照您在安裝64位操作系統(tǒng)時(shí)已經(jīng)知道的說明進(jìn)行操作。
$ sudo nano /usr/bin/zram.sh
# alter the limit with * 2
mem=$(( ($totalmem / $cores)* 1024 * 3))
# save with , and
$ sudo reboot
+x>
通過將比率增加到三倍,您將獲得 1.8 GB 的額外交換空間。這對(duì)于構(gòu)建OpenCV 4.5.2就足夠了。
版本 4.5.0 - 4.5.1
OpenCV 版本 4.5.0 或 4.5.1 至少需要總共 5.5 GB 的內(nèi)存。如果您根據(jù)我們的指南安裝了 64 位操作系統(tǒng),這應(yīng)該沒有問題。
如果你有一個(gè)沒有安裝 zram.sh 的Raspberry Pi 4,你可能已經(jīng)安裝了最初安裝的dphys-swapfile。在這種情況下,您必須增加默認(rèn)的 100 MB 交換空間。使用板載 4 GB RAM 的樹莓派,您必須增加到最大 2048 GByte。但是,使用只有 2 或 1 GB RAM 的樹莓派,您會(huì)遇到麻煩。
要超過通常在 /etc/dphys-swapfile中找到的2048 MB 限制,您必須首先在/sbin/dphys-swapfile中增加此最大值。下面的幻燈片演示了所有內(nèi)容。
# activate the modifications
$ sudo reboot
EEPROM檢查
最后是檢查EEPROM軟件版本。Raspberry Pi 3在SD卡上安裝了所有操作軟件。另一方面,Raspberry Pi 4也部分從兩個(gè)EEPROM啟動(dòng)。這些EEPROM在工廠進(jìn)行PCB組裝后進(jìn)行編程。Raspberry 基金會(huì)最近為這些 EEPROM 發(fā)布了新的和改進(jìn)的軟件。這與OpenCV無關(guān),但與散熱有關(guān)。在我們的一個(gè)視覺應(yīng)用中,只需更新EEPROM的內(nèi)容,CPU的熱量就會(huì)從65°C(149°F)下降到48°C(118°F)。而且,如您所知,較低的 CPU 溫度將延長您的 Pi 壽命。有關(guān)詳細(xì)信息,請(qǐng)參閱此文章。
使用以下命令檢查并在需要時(shí)更新 EEPROM。以下是說明。
# to get the current status
$ sudo rpi-eeprom-update
# if needed, to update the firmware
$ sudo rpi-eeprom-update -a
$ sudo reboot
注意
一些警告的話。不要使用pip3在樹莓派上安裝 OpenCV。也不要使用sudo apt-get 安裝。所有版本都不是最新的,當(dāng)然也不是 64 位。安裝 OpenCV 4.5 的唯一正確方法是從源代碼構(gòu)建它。
顯卡內(nèi)存
如此處所述,物理 RAM 芯片由 CPU 和 GPU 同時(shí)使用。如有必要,請(qǐng)使用以下菜單檢查并將容量更改為至少 128 MB。
安裝腳本
在Raspberry Pi上安裝OpenCV并不復(fù)雜。憑借其 60 個(gè)命令行,它更像是一項(xiàng)管理任務(wù)。這就是我們創(chuàng)建一個(gè)安裝腳本的原因,該腳本可以一次執(zhí)行本指南中的所有命令。如果需要,請(qǐng)使用它,它應(yīng)該不會(huì)引起任何問題。整個(gè)安裝需要一個(gè)半小時(shí)才能完成。它從安裝依賴項(xiàng)開始,以ldconfig結(jié)束。
如果您想使用 Qt5 GUI 美化您的 OpenCV,請(qǐng)按照GitHub 頁面上或以下部分中的說明進(jìn)行操作。
OpenCV 4.5.5
# check your memory first
$ free -m
# you need at least a total of 6.5 GB!
# if not, enlarge your swap space as explained in the guide
$ wget https://github.com/Qengineering/Install-OpenCV-Raspberry-Pi-64-bits/raw/main/OpenCV-4-5-5.sh
$ sudo chmod 755 ./OpenCV-4-5-5.sh
$ ./OpenCV-4-5-5.sh
OpenCV 4.5.4
# check your memory first
$ free -m
# you need at least a total of 6.5 GB!
# if not, enlarge your swap space as explained in the guide
$ wget https://github.com/Qengineering/Install-OpenCV-Raspberry-Pi-64-bits/raw/main/OpenCV-4-5-4.sh
$ sudo chmod 755 ./OpenCV-4-5-4.sh
$ ./OpenCV-4-5-4.sh
OpenCV 4.5.3
# check your memory first
$ free -m
# you need at least a total of 6.5 GB!
# if not, enlarge your swap space as explained in the guide
$ wget https://github.com/Qengineering/Install-OpenCV-Raspberry-Pi-64-bits/raw/main/OpenCV-4-5-3.sh
$ sudo chmod 755 ./OpenCV-4-5-3.sh
$ ./OpenCV-4-5-3.sh
OpenCV 4.5.2
# check your memory first
$ free -m
# you need at least a total of 6.5 GB!
# if not, enlarge your swap space as explained in the guide
$ wget https://github.com/Qengineering/Install-OpenCV-Raspberry-Pi-64-bits/raw/main/OpenCV-4-5-2.sh
$ sudo chmod 755 ./OpenCV-4-5-2.sh
$ ./OpenCV-4-5-2.sh
OpenCV 4.5.1
# check your memory first
$ free -m
# you need at least a total of 5.5 GB
# if not, enlarge your swap space as explained in the guide
$ wget https://github.com/Qengineering/Install-OpenCV-Raspberry-Pi-64-bits/raw/main/OpenCV-4-5-1.sh
$ sudo chmod 755 ./OpenCV-4-5-1.sh
$ ./OpenCV-4-5-1.sh
OpenCV 4.5.0
# check your memory first
$ free -m
# you need at least a total of 5.5 GB
# if not, enlarge your swap space as explained in the guide
$ wget https://github.com/Qengineering/Install-OpenCV-Raspberry-Pi-64-bits/raw/main/OpenCV-4-5-0.sh
$ sudo chmod 755 ./OpenCV-4-5-0.sh
$ ./OpenCV-4-5-0.sh
清潔和移除dphys-swap應(yīng)該按照這些說明手動(dòng)完成。
依賴
不使用腳本?這是完整指南。
OpenCV軟件使用其他第三方軟件庫。必須先安裝這些。有些帶有Raspberry 64位操作系統(tǒng),有些可能已經(jīng)安裝。安全總比后悔好,所以這里是完整的列表。僅根據(jù)該過程安裝最新的軟件包。
# check for updates
$ sudo apt-get update
$ sudo apt-get upgrade
# dependencies
$ sudo apt-get install build-essential cmake git unzip pkg-config
$ sudo apt-get install libjpeg-dev libpng-dev
$ sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev
$ sudo apt-get install libgtk2.0-dev libcanberra-gtk* libgtk-3-dev
$ sudo apt-get install libgstreamer1.0-dev gstreamer1.0-gtk3
$ sudo apt-get install libgstreamer-plugins-base1.0-dev gstreamer1.0-gl
$ sudo apt-get install libxvidcore-dev libx264-dev
$ sudo apt-get install python3-dev python3-numpy python3-pip
$ sudo apt-get install libtbb2 libtbb-dev libdc1394-22-dev
$ sudo apt-get install libv4l-dev v4l-utils
$ sudo apt-get install libopenblas-dev libatlas-base-dev libblas-dev
$ sudo apt-get install liblapack-dev gfortran libhdf5-dev
$ sudo apt-get install libprotobuf-dev libgoogle-glog-dev libgflags-dev
$ sudo apt-get install protobuf-compiler
Qt5
Qt是一個(gè)開源工具包,用于開發(fā)跨平臺(tái)圖形用戶界面。它也適用于Raspberry Pi。該軟件可用于美化OpenCV窗口和其他用戶界面,如滑塊和復(fù)選框。對(duì)于OpenCV的工作來說,這絕對(duì)不是強(qiáng)制性的,只是為了修飾外觀??梢哉f,使用Qt5會(huì)使OpenCV的速度減慢幾個(gè)百分點(diǎn)。如果您選擇最快的應(yīng)用程序,請(qǐng)不要使用它。
如果您希望在 OpenCV 中啟用 Qt5 支持,則必須下載庫,如以下命令所示。下一步是在生成過程中設(shè)置-D WITH_QT標(biāo)志。
# only install if you want Qt5
# to beautify your OpenCV GUI
$ sudo apt-get install qt5-default
下載OpenCV
安裝完所有第三方軟件后,可以下載OpenCV本身。需要兩個(gè)包;基本版本和其他。下載后,您可以解壓縮文件。請(qǐng)注意文本框中的換行。這兩個(gè)命令以wget開頭,以zip結(jié)尾。
OpenCV 4.5.5
# check your memory first
$ free -m
# you need at least a total of 6.5 GB!
# if not, enlarge your swap space as explained earlier
# download the latest version
$ cd ~
$ wget -O opencv.zip https://github.com/opencv/opencv/archive/4.5.5.zip
$ wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/4.5.5.zip
# unpack
$ unzip opencv.zip
$ unzip opencv_contrib.zip
# some administration to make live easier later on
$ mv opencv-4.5.5 opencv
$ mv opencv_contrib-4.5.5 opencv_contrib
# clean up the zip files
$ rm opencv.zip
$ rm opencv_contrib.zip
OpenCV 4.5.4
# check your memory first
$ free -m
# you need at least a total of 6.5 GB!
# if not, enlarge your swap space as explained earlier
# download the latest version
$ cd ~
$ wget -O opencv.zip https://github.com/opencv/opencv/archive/4.5.4.zip
$ wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/4.5.4.zip
# unpack
$ unzip opencv.zip
$ unzip opencv_contrib.zip
# some administration to make live easier later on
$ mv opencv-4.5.4 opencv
$ mv opencv_contrib-4.5.4 opencv_contrib
# clean up the zip files
$ rm opencv.zip
$ rm opencv_contrib.zip
OpenCV 4.5.3
# check your memory first
$ free -m
# you need at least a total of 6.5 GB!
# if not, enlarge your swap space as explained earlier
# download the latest version
$ cd ~
$ wget -O opencv.zip https://github.com/opencv/opencv/archive/4.5.3.zip
$ wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/4.5.3.zip
# unpack
$ unzip opencv.zip
$ unzip opencv_contrib.zip
# some administration to make live easier later on
$ mv opencv-4.5.3 opencv
$ mv opencv_contrib-4.5.3 opencv_contrib
# clean up the zip files
$ rm opencv.zip
$ rm opencv_contrib.zip
OpenCV 4.5.2
# check your memory first
$ free -m
# you need at least a total of 6.5 GB!
# if not, enlarge your swap space as explained earlier
# download the latest version
$ cd ~
$ wget -O opencv.zip https://github.com/opencv/opencv/archive/4.5.2.zip
$ wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/4.5.2.zip
# unpack
$ unzip opencv.zip
$ unzip opencv_contrib.zip
# some administration to make live easier later on
$ mv opencv-4.5.2 opencv
$ mv opencv_contrib-4.5.2 opencv_contrib
# clean up the zip files
$ rm opencv.zip
$ rm opencv_contrib.zip
OpenCV 4.5.1
# download the latest version
$ cd ~
$ wget -O opencv.zip https://github.com/opencv/opencv/archive/4.5.1.zip
$ wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/4.5.1.zip
# unpack
$ unzip opencv.zip
$ unzip opencv_contrib.zip
# some administration to make live easier later on
$ mv opencv-4.5.1 opencv
$ mv opencv_contrib-4.5.1 opencv_contrib
# clean up the zip files
$ rm opencv.zip
$ rm opencv_contrib.zip
OpenCV 4.5.0
# download the latest version
$ cd ~
$ wget -O opencv.zip https://github.com/opencv/opencv/archive/4.5.0.zip
$ wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/4.5.0.zip
# unpack
$ unzip opencv.zip
$ unzip opencv_contrib.zip
# some administration to make live easier later on
$ mv opencv-4.5.0 opencv
$ mv opencv_contrib-4.5.0 opencv_contrib
# clean up the zip files
$ rm opencv.zip
$ rm opencv_contrib.zip
虛擬環(huán)境
現(xiàn)在是時(shí)候決定是否使用虛擬環(huán)境進(jìn)行OpenCV安裝了。我們不使用虛擬環(huán)境。相反,如果需要,我們只需交換SD卡即可。但是,安裝虛擬環(huán)境也是可以的。所有說明均在 32 位OpenCV 指南中給出。
將TensorFlow和OpenCV導(dǎo)入Python可能會(huì)引發(fā)錯(cuò)誤:無法在靜態(tài)TLS塊中分配內(nèi)存。
此行為僅在 aarch64 系統(tǒng)上發(fā)生,并且是由未滿足 OpenMP 內(nèi)存要求引起的。有關(guān)更多信息,請(qǐng)參閱 GitHub #14884。
有幾種解決方案。最簡單的方法是在開始時(shí)導(dǎo)入 OpenCV,如上所示。
另一種是通過設(shè)置 -DBUILD_OPENMP 和 -DWITH_OPENMP標(biāo)志 OFF 來禁用 OpenMP。在可能的情況下,OpenCV現(xiàn)在將使用默認(rèn)的pthread或TBB引擎進(jìn)行并行化。
我們不推薦它。并非所有 OpenCV 算法都會(huì)自動(dòng)切換到 pthread。我們的建議是先將OpenCV導(dǎo)入Python。
構(gòu)建編譯
在我們開始實(shí)際構(gòu)建庫之前,還有一小步要走。您必須創(chuàng)建一個(gè)可以找到所有構(gòu)建文件的目錄。
$ cd ~/opencv
$ mkdir build
$ cd build
現(xiàn)在是邁出重要一步的時(shí)候了。在這里,你告訴CMake什么,在哪里以及如何在你的Raspberry上制作OpenCV。涉及許多標(biāo)志。你會(huì)認(rèn)出的最多。您可能會(huì)注意到-D WITH_QT=OFF行。此處禁用了 Qt5 支持。如果選擇將 Qt5 軟件用于 GUI,請(qǐng)?jiān)O(shè)置-D WITH_QT=ON。我們通過排除任何(Python)示例或測試來節(jié)省空間。
-D 標(biāo)志之前只有暴露的空間,沒有制表符。順便說一下,最后兩個(gè)點(diǎn)不是錯(cuò)別字。它告訴 CMake 在哪里可以找到它的 CMakeLists.txt(大型配置文件);一個(gè)目錄向上。
OpenCV 4.5.5
$ cmake -D CMAKE_BUILD_TYPE=RELEASE
-D CMAKE_INSTALL_PREFIX=/usr/local
-D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules
-D ENABLE_NEON=ON
-D WITH_OPENMP=ON
-D WITH_OPENCL=OFF
-D BUILD_TIFF=ON
-D WITH_FFMPEG=ON
-D WITH_TBB=ON
-D BUILD_TBB=ON
-D WITH_GSTREAMER=ON
-D BUILD_TESTS=OFF
-D WITH_EIGEN=OFF
-D WITH_V4L=ON
-D WITH_LIBV4L=ON
-D WITH_VTK=OFF
-D WITH_QT=OFF
-D OPENCV_ENABLE_NONFREE=ON
-D INSTALL_C_EXAMPLES=OFF
-D INSTALL_PYTHON_EXAMPLES=OFF
-D PYTHON3_PACKAGES_PATH=/usr/lib/python3/dist-packages
-D OPENCV_GENERATE_PKGCONFIG=ON
-D BUILD_EXAMPLES=OFF ..
OpenCV 4.5.4
$ cmake -D CMAKE_BUILD_TYPE=RELEASE
-D CMAKE_INSTALL_PREFIX=/usr/local
-D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules
-D ENABLE_NEON=ON
-D WITH_OPENMP=ON
-D WITH_OPENCL=OFF
-D BUILD_TIFF=ON
-D WITH_FFMPEG=ON
-D WITH_TBB=ON
-D BUILD_TBB=ON
-D WITH_GSTREAMER=ON
-D BUILD_TESTS=OFF
-D WITH_EIGEN=OFF
-D WITH_V4L=ON
-D WITH_LIBV4L=ON
-D WITH_VTK=OFF
-D WITH_QT=OFF
-D OPENCV_ENABLE_NONFREE=ON
-D INSTALL_C_EXAMPLES=OFF
-D INSTALL_PYTHON_EXAMPLES=OFF
-D BUILD_opencv_python3=TRUE
-D OPENCV_GENERATE_PKGCONFIG=ON
-D BUILD_EXAMPLES=OFF ..
OpenCV 4.5.3
$ cmake -D CMAKE_BUILD_TYPE=RELEASE
-D CMAKE_INSTALL_PREFIX=/usr/local
-D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules
-D ENABLE_NEON=ON
-D WITH_OPENMP=ON
-D WITH_OPENCL=OFF
-D BUILD_TIFF=ON
-D WITH_FFMPEG=ON
-D WITH_TBB=ON
-D BUILD_TBB=ON
-D WITH_GSTREAMER=ON
-D BUILD_TESTS=OFF
-D WITH_EIGEN=OFF
-D WITH_V4L=ON
-D WITH_LIBV4L=ON
-D WITH_VTK=OFF
-D WITH_QT=OFF
-D OPENCV_ENABLE_NONFREE=ON
-D INSTALL_C_EXAMPLES=OFF
-D INSTALL_PYTHON_EXAMPLES=OFF
-D BUILD_opencv_python3=TRUE
-D OPENCV_GENERATE_PKGCONFIG=ON
-D BUILD_EXAMPLES=OFF ..
OpenCV 4.5.2
$ cmake -D CMAKE_BUILD_TYPE=RELEASE
-D CMAKE_INSTALL_PREFIX=/usr/local
-D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules
-D ENABLE_NEON=ON
-D WITH_OPENMP=ON
-D WITH_OPENCL=OFF
-D BUILD_TIFF=ON
-D WITH_FFMPEG=ON
-D WITH_TBB=ON
-D BUILD_TBB=ON
-D WITH_GSTREAMER=ON
-D BUILD_TESTS=OFF
-D WITH_EIGEN=OFF
-D WITH_V4L=ON
-D WITH_LIBV4L=ON
-D WITH_VTK=OFF
-D WITH_QT=OFF
-D OPENCV_ENABLE_NONFREE=ON
-D INSTALL_C_EXAMPLES=OFF
-D INSTALL_PYTHON_EXAMPLES=OFF
-D BUILD_opencv_python3=TRUE
-D OPENCV_GENERATE_PKGCONFIG=ON
-D BUILD_EXAMPLES=OFF ..
OpenCV 4.5.1
$ cmake -D CMAKE_BUILD_TYPE=RELEASE
-D CMAKE_INSTALL_PREFIX=/usr/local
-D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules
-D ENABLE_NEON=ON
-D WITH_OPENMP=ON
-D WITH_OPENCL=OFF
-D BUILD_TIFF=ON
-D WITH_FFMPEG=ON
-D WITH_TBB=ON
-D BUILD_TBB=ON
-D BUILD_TESTS=OFF
-D WITH_EIGEN=OFF
-D WITH_GSTREAMER=ON
-D WITH_V4L=ON
-D WITH_LIBV4L=ON
-D WITH_VTK=OFF
-D WITH_QT=OFF
-D OPENCV_ENABLE_NONFREE=ON
-D INSTALL_C_EXAMPLES=OFF
-D INSTALL_PYTHON_EXAMPLES=OFF
-D BUILD_NEW_PYTHON_SUPPORT=ON
-D BUILD_opencv_python3=TRUE
-D OPENCV_GENERATE_PKGCONFIG=ON
-D BUILD_EXAMPLES=OFF ..
OpenCV 4.5.0
$ cmake -D CMAKE_BUILD_TYPE=RELEASE
-D CMAKE_INSTALL_PREFIX=/usr/local
-D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules
-D ENABLE_NEON=ON
-D WITH_OPENMP=ON
-D BUILD_TIFF=ON
-D WITH_FFMPEG=ON
-D WITH_TBB=ON
-D BUILD_TBB=ON
-D BUILD_TESTS=OFF
-D WITH_EIGEN=OFF
-D WITH_GSTREAMER=ON
-D WITH_V4L=ON
-D WITH_LIBV4L=ON
-D WITH_VTK=OFF
-D WITH_QT=OFF
-D OPENCV_ENABLE_NONFREE=ON
-D INSTALL_C_EXAMPLES=OFF
-D INSTALL_PYTHON_EXAMPLES=OFF
-D BUILD_NEW_PYTHON_SUPPORT=ON
-D BUILD_opencv_python3=TRUE
-D OPENCV_GENERATE_PKGCONFIG=ON
-D BUILD_EXAMPLES=OFF ..
希望一切順利,CMake 附帶了一個(gè)類似于下面屏幕截圖的報(bào)告。
編譯
完成所有編譯指令后,可以使用以下命令開始生成。這將需要一段時(shí)間(最少 1:30)。
$ make -j4
希望您的構(gòu)建與下面的構(gòu)建一樣成功。
現(xiàn)在要完成,使用以下命令將所有生成的軟件包安裝到系統(tǒng)的數(shù)據(jù)庫中。
$ sudo make install
$ sudo ldconfig
# cleaning (frees 300 KB)
$ make clean
$ sudo apt-get update
檢查
現(xiàn)在是時(shí)候檢查您在 Python 中的安裝了。您可以使用命令,如下面的屏幕所示。這一切都不言自明。顯然,如果您在虛擬環(huán)境中安裝了 OpenCV,則需要首先使用命令workon激活此環(huán)境。
OpenCV 將安裝到 /usr/local目錄下,所有文件都將復(fù)制到以下位置:
/usr/local/bin- 可執(zhí)行文件
/usr/local/lib- libraries (.so)
/usr/local/cmake/opencv4- cmake package
/usr/local/include/opencv4- headers
/usr/local/share/opencv4- 其他文件(例如 XML 格式的文件)
清空
首先要做的是將交換空間重置回其原始的 100 MB,如果您安裝了 dphys-swapfile。閃存只能寫入有限數(shù)量的周期。最后,它會(huì)磨損您的SD卡。因此,明智的做法是將內(nèi)存交換保持在最低限度。此外,它還會(huì)減慢您的應(yīng)用程序速度。這就是為什么我們更喜歡使用 zram,如 樹莓派 464 位操作系統(tǒng)指南中所述。
$ sudo nano /etc/dphys-swapfile
set CONF_SWAPSIZE=100 with the Nano text editor
$ sudo reboot
如果磁盤空間不足,可以考慮刪除~/opencv和~/opencv_contrib文件夾。通過命令 sudomake install,您已將所有標(biāo)頭和庫復(fù)制到磁盤上的適當(dāng)位置。不再需要 ~/opencv/build/文件夾中的原始文件。當(dāng)然,例如,如果您啟用了示例的構(gòu)建,則無法刪除文件夾,因?yàn)檫@也會(huì)刪除這些示例。這只是一個(gè)提示,節(jié)省了大約 1.5 GB 的空間。
# just a tip to save some space
$ sudo rm -rf ~/opencv
$ sudo rm -rf ~/opencv_contrib
-
內(nèi)存
+關(guān)注
關(guān)注
8文章
3025瀏覽量
74060 -
操作系統(tǒng)
+關(guān)注
關(guān)注
37文章
6827瀏覽量
123335 -
OpenCV
+關(guān)注
關(guān)注
31文章
635瀏覽量
41355 -
Raspberry Pi
+關(guān)注
關(guān)注
2文章
559瀏覽量
22247
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論