OpenCV修养(一)——引入
文章目錄
- 1 引入
- 1.1 OpenCV是啥
- 1.2 OpenCV——Python
1 引入
1.1 OpenCV是啥
OpenCV是一個基于Apache2.0許可(開源)發行的跨平臺計算機視覺計算機視覺和機器學習軟件庫,可以運行在Linux、Windows、Android和Mac OS操作系統上。 它輕量級而且高效——由一系列 C 函數和少量 C++ 類構成,同時提供了Python、Ruby、MATLAB等語言的接口,實現了圖像處理和計算機視覺方面的很多通用算法。
OpenCV用C++語言編寫,它具有C ++,Python,Java和MATLAB接口,并支持Windows,Linux,Android和Mac OS,OpenCV主要傾向于實時視覺應用,并在可用時利用MMX和SSE指令, 如今也提供對于C#、Ch、Ruby,GO的支持。
1.2 OpenCV——Python
OpenCV—python是一個python綁定庫,旨在解決計算機視覺問題。
OpenCV-Python使用Numpy,這是一個高度優化的數據庫操作庫,具有MATLAB風格的語法,所有OpenCV數組結構都轉換為Numpy數組,這也使得與使用Numpy的其他庫集成更容易。
openCV-Python的部署十分簡單,但需要在有Numpy和matplotlib的前提下才能進行安裝。我們可以打開cmd或者anaconda prompt的shell命令窗口,輸入以下:
pip install opencv-python==3.4.2.17 -i https://pypi.tuna.tsinghua.edu.cn/simple
即可完成安裝。如果想要測試是否安裝成功,則試著運行以下的代碼。
import cv2 #讀一個圖片 lena = cv2.inread("1.jpg") cv2.imshow("image",lena) cv2.waitKey(0)OpenCV-python主要的模塊如下所示,在后面的學習中,我直接稱OpenCV-python為OpenCV了。
其中core、highgui、imgproc是最基礎的模塊。
- core模塊實現了最核心的數據結構及其基本運算,如繪圖函數,數組操作相關函數等
- highgui模塊實現了視頻與圖像的讀取、顯示、存儲等接口
- imgproc模塊實現了圖像處理的基礎方法,包括圖像濾波、圖像的幾何變化、平滑、閾值分割、形態學處理、邊緣檢測、目標檢測、運動分析和對象跟蹤等
除了上述的三個最基本的模塊,還有其他的一些模塊也是用于圖像處理。
- features2d模塊用于提取圖像特征以及特征匹配,nonfree模塊實現了一些專利算法,如sift特征。
- objdetect模塊實現了一些目標檢測的功能,經典的基于Haar、LBP特征的人臉檢測,基于HOG的行人、汽車等目標檢測,分類器使用Cascade Classification(級聯分類)和Latent SVM等。
- stitching模塊實現了圖像拼接功能。
- FLANN模塊包含快速近似最近鄰搜索FLANN和聚類Clustering算法。
- ml模塊機器學習模塊(SVM、決策樹、Boosing等等)
- photo模塊包含圖像修復和圖像去噪兩部分
- video模塊針對視頻處理,如背景分離、前景檢測、對象跟蹤等。
- calib3d模塊即Calibration3D,這個模塊主要是相機校準和三維重疊相關的內容。包含了基本的多視角幾何算法,單個立體攝像頭標定,物體姿態估計,立體相似性算法,3D信息的重建等待。
- G-API模塊包含了超高效的圖像處理pipeline引擎。
總結
以上是生活随笔為你收集整理的OpenCV修养(一)——引入的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 最简单的java代码【java基本语法】
- 下一篇: 【控制】动力学建模简介 --> 牛顿-欧