一、opencv概述
OpenCV(Open Source Computer Vision Library)是一個開源的計算機視覺庫,它提供了很多函數,這些函數非常高效地實現了計算機視覺算法(最基本的濾波到高級的物體檢測皆有涵蓋)。
OpenCV 使用 C/C++ 開發,同時也提供了 Python、Java、MATLAB 等其他語言的接口。如果你不瞭解 C/C++,請閱讀《C語言教程》和《C++教程》。
OpenCV 是跨平臺的,可以在 Windows、Linux、Mac OS、Android、iOS 等操作系統上運行。
OpenCV 的應用領域非常廣泛,包括圖像拼接、圖像降噪、產品質檢、人機交互、人臉識別、動作識別、動作跟蹤、無人駕駛等。
OpenCV 還提供了機器學習模塊,你可以使用正態貝葉斯、K最近鄰、支持向量機、決策樹、隨機森林、人工神經網絡等機器學習算法。
二、opencv包含模塊
表1:當前 OpenCV 所擁有的模塊
模塊 | 說明 |
---|---|
Core | 該模塊包含 OpenCV 庫的基礎結構以及基本操作。Improc 圖像處理模塊包含基本的圖像轉換,包括濾波以及類似的卷積操作。 |
Highgui | 在 OpenCV 3.0中,分割爲 imcodecs、videoio 以及 highgui 三部分。這個模塊包含可以用來顯示圖像或者簡單的輸入的用戶交互函數。這可以看作是一個非常輕量級的 Windows UI 工具包。 |
Video | 該模塊包含讀取和寫視頻流的函數。 |
Calib3d | 這個模塊包括校準單個、雙目以及多個相機的算法實現。 |
Feature2d | 這個模塊包含用於檢測、描述以及匹配特徵點的算法。 |
Objdectect | 這個模塊包含檢測特定目標,比如人臉或者行人的算法。也可以訓練檢測器並用來檢測其他物體。 |
Ml | 機器學習模塊本身是一個非常完備的模塊,包含大量的機器學習算法實現並且這些算法都能和 OpenCV 的數據類型自然交互。 |
Flann | Flann 的意思是“快速最鄰近庫”。這個庫包含一些你也許不會直接使用的方法,但是其他模塊中的函數會調用它在數據集中進行最鄰近搜索。 |
GPU | 在 OpenCV 中被分割爲多個 cuda* 模塊。GPU 模塊主要是函數在 CUDA GPU 上的優化實現,此外,還有一些僅用於 GPU 的功 能。其中一些函數能夠返回很好的結果,但是需要足夠好的計算資源,如果硬件沒有GPU,則不會有什麼提升。 |
Photo | 這是一個相當新的模塊,包含計算攝影學的一些函數工具。 |
Stitching | 本模塊是一個精巧的圖像拼接流程實現。這是庫中的新功能,但是,就像 Photo 模塊一樣,這個領域未來預計有很大的增長。 |
Nonfree | 在 OpenCV 3.0 中,被移到 opencv_contrib/xfeatures2d。OpenCV 包含一些受到專利保護的或者受到使用限制的(比如 SIFT 算法)算法。這些算法被隔離到它們自己的模塊中,以表明你需要做一些特殊的工作,纔可以在商業產品中使用它們。 |
Contrib | 在 OpenCV 3.0 中,融合進了 opencv_contrib。這個模塊包含一些新的、還沒有被集成進 OpenCV 庫的東西。 |
Legacy | 在 OpenCV 3.0 中,被取消。這個模塊包含一些老的尚未被完全取消的東西。 |
ocl | 在OpenCV 3.0 中,被取消,取而代之的是 T-API。這是一個較新的模塊,可以認爲它和 GPU 模塊相似,它實現了開放並行編程的 Khronos OpenCL 標準。雖然現在模塊的特性比 GPU 模塊少很多,但 ocl 模塊的目標是提供可以運行在任何 GPU 或者是其他可以搭載 Khronos 的並行設備。這與 GPU 模 塊形成了鮮明的對比,後者使用 Nividia CUDA 工具包進行開發,因此只能在 Nividia GPU 設備上工作。 |
三、opencv - python安裝
先安裝python,在安裝opencv
pip install opencv-python
pip install opencv-contrib-python(建議安裝,包含擴展模塊)
但是兩個不能同時安裝喲,會有衝突
import cv2 as cv
cv.imshow(" url ")
cv.waitkey(0)
cv.destroyAllWindows()