OpenCV的 是一個免費的跨平台機器視覺庫 (適用於GNU / Linux,Mac OS X,Windows和Android的現有版本) 由英特爾開發並用於無數應用中從具有運動檢測功能的安全系統到需要對象識別的過程控制應用程序。 這是因為其出版物是根據BSD許可提供的,因此可以在其中表達的條件下將其免費用於商業和研究目的。
公開簡歷 包含500多種功能,涵蓋視覺過程中的各個領域, 例如物體識別(面部識別),相機校準,立體視覺,機器人視覺,對視頻中的動作進行分類,轉換圖像,提取3D模型,從立體相機圖像創建3D空間,通過組合圖像來創建高質量圖像低質量。
坦比恩 提供搜索相似對像圖像的功能 通過應用機器學習方法,組織標記,識別不同圖像中的常見元素,自動消除諸如紅眼之類的缺陷來呈現元素集。
OpenCV提供了2500多種算法, 既經典又反映了計算機視覺和機器學習系統領域的最新成就。 庫代碼是用C ++編寫的,並根據BSD許可進行分發。
關於新版本OpenCV 4.2
現在 該庫是其OpenCV 4.2版本,其中 在DNN模塊中 (深度神經網絡)結合了基於神經網絡的機器學習算法的實現, 添加了一個後端以使用CUDA 並實現了對nGraph OpenVINO API的實驗支持。
除了使用SIMD指令外,我們還優化了立體聲輸出(StereoBM / StereoSGBM),調整大小,蒙版,旋轉,計算缺失的顏色分量以及許多其他操作的代碼性能。
在G-API模塊中 (opencv_gapi), 作為處理引擎 使用基於圖形的算法進行高效成像,支持用於計算機視覺和深度機器學習的更複雜的混合算法。 提供對英特爾推理引擎的支持。 對視頻流處理的支持已添加到執行模型中。
還修復了可能通過處理XML,YAML和JSON格式的未驗證數據來導致攻擊代碼執行的漏洞(CVE-2019-5063,CVE-2019-5064)。 如果在JSON解析期間發現具有空代碼的字符,則將整個值複製到緩衝區,但沒有適當驗證分配的內存區域的限制。
其他變化 在此新版本中呈現:
- 添加了pyrDown函數的多線程實現。
- 添加了使用基於FFmpeg的視頻後端從媒體容器提取視頻流(解復用)的功能。
- 添加了一種算法,可以對受損的FSR(頻率選擇性重建)圖像進行快速的頻率選擇性重建。
- 添加了RIC方法來對典型空白區域進行插值。
- 添加了LOGOS偏差歸一化方法。
如何安裝OpenCV 4.2?
對於那些有興趣安裝此庫的人, 可以獲得新版本 以及查閱與使用有關的信息,甚至可以從其官方網站上找到教程。
在這篇文章中 我們將提供能夠在Raspberry pi上實現該庫的步驟。
在Raspberry P上安裝OpenCV我必須擁有您的系統,即Raspbian。
從v我們將要打開一個終端,並在其中鍵入 以下命令可用於安裝依賴項,開發人員工具,映像包以及其他附加庫:
sudo apt-get install build-essential cmake pkg-config
sudo apt-get install libjpeg-dev libtiff5-dev libjasper-dev libpng-dev libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libxvidcore-dev libx264-dev libfontconfig1-dev libcairo2-dev libgdk-pixbuf2.0-dev libpango1.0-dev libgtk2.0-dev libgtk-3-dev libatlas-base-dev gfortran libhdf5-dev libhdf5-serial-dev libhdf5-103 libqtgui4 libqtwebkit4 libqt4-test python3-pyqt5
最後, 讓我們安裝python 3頭文件 這樣我們就可以編譯OpenCV了:
sudo apt-get install python3-dev
現在 讓我們創建一個Python環境 使用以下命令,可以使站點隔離:
wget https://bootstrap.pypa.io/get-pip.py
sudo python get-pip.py
sudo python3 get-pip.py
sudo rm -rf ~/.cache/pip
我們將安裝virtualenv和virtualenvwrapper:
sudo pip install virtualenv virtualenvwrapper
nano ~/.bashrc
# virtualenv and virtualenvwrapper
export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
source /usr/local/bin/virtualenvwrapper.sh
source ~/.bashrc
mkvirtualenv cv -p python3
pip install "picamera[array]"
現在做這個 我們將使用以下命令編譯openCV:
cd ~
wget -O opencv.zip https://github.com/opencv/opencv/archive/4.2.0.zip
wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/4.2.0.zip
unzip opencv.zip
unzip opencv_contrib.zip
mv opencv-4.2.0 opencv
mv opencv_contrib-4.2.0 opencv_contrib
現在,我們將增加系統中的交換,因為如果我們將其保留為默認狀態,則係統會掛起:
sudo nano /etc/dphys-swapfile
我們將編輯CONF_SWAPSIZE變量:
CONF_SWAPSIZE=1024
我們使用ctrl + o和ctrl + x保存並關閉。 然後我們輸入:
sudo /etc/init.d/dphys-swapfile stop
sudo /etc/init.d/dphys-swapfile start
現在我們將繼續進行編譯:
workon cv
pip install numpy
cd ~/opencv
mkdir build
cd build
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 ENABLE_VFPV3=ON \
-D BUILD_TESTS=OFF \
-D INSTALL_PYTHON_EXAMPLES=OFF \
-D OPENCV_ENABLE_NONFREE=ON \
-D CMAKE_SHARED_LINKER_FLAGS=-latomic \
-D BUILD_EXAMPLES=OFF ..
make -j4
sudo make install
sudo ldconfig
cd /usr/local/lib/python3.7/site-packages/cv2/python-3.7
sudo mv cv2.cpython-37m-arm-linux-gnueabihf.so cv2.so
cd ~/.virtualenvs/cv/lib/python3.7/site-packages/
ln -s /usr/local/lib/python3.7/site-packages/cv2/python-3.7/cv2.so cv2.so
準備好了