opencv + python環境搭建與基礎入門

一、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()

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章