首頁人工智能技術(shù)資訊正文

OpenCV是干什么的?

更新時(shí)間:2021-05-26 來源:黑馬程序員 瀏覽量:

1.1 OpenCV簡介

OpenCV是一款由Intel公司俄羅斯團(tuán)隊(duì)發(fā)起并參與和維護(hù)的一個(gè)計(jì)算機(jī)視覺處理開源軟件庫,支持與計(jì)算機(jī)視覺和機(jī)器學(xué)習(xí)相關(guān)的眾多算法,并且正在日益擴(kuò)展。

OpenCV的優(yōu)勢:

·編程語言

OpenCV基于C++實(shí)現(xiàn),同時(shí)提供python, Ruby, Matlab等語言的接口。OpenCV-Python是OpenCV的Python API,結(jié)合了OpenCV C++ API和Python語言的最佳特性。

·跨平臺

可以在不同的系統(tǒng)平臺上使用,包括Windows,Linux,OS X,Android和iOS?;贑UDA和OpenCL的高速GPU操作接口也在積極開發(fā)中

·活躍的開發(fā)團(tuán)隊(duì)

·豐富的API

完善的傳統(tǒng)計(jì)算機(jī)視覺算法,涵蓋主流的機(jī)器學(xué)習(xí)算法,同時(shí)添加了對深度學(xué)習(xí)的支持。

1.2 OpenCV-Python

OpenCV-Python是一個(gè)Python綁定庫,旨在解決計(jì)算機(jī)視覺問題。

Python是一種由Guido van Rossum開發(fā)的通用編程語言,它很快就變得非常流行,主要是因?yàn)樗暮唵涡院痛a可讀性。它使程序員能夠用更少的代碼行表達(dá)思想,而不會降低可讀性。

與C / C++等語言相比,Python速度較慢。也就是說,Python可以使用C / C++輕松擴(kuò)展,這使我們可以在C / C++中編寫計(jì)算密集型代碼,并創(chuàng)建可用作Python模塊的Python包裝器。這給我們帶來了兩個(gè)好處:首先,代碼與原始C / C++代碼一樣快(因?yàn)樗窃诤笈_工作的實(shí)際C++代碼),其次,在Python中編寫代碼比使用C / C++更容易。OpenCV-Python是原始OpenCV C++實(shí)現(xiàn)的Python包裝器。

OpenCV-Python使用Numpy,這是一個(gè)高度優(yōu)化的數(shù)據(jù)庫操作庫,具有MATLAB風(fēng)格的語法。所有OpenCV數(shù)組結(jié)構(gòu)都轉(zhuǎn)換為Numpy數(shù)組。這也使得與使用Numpy的其他庫(如SciPy和Matplotlib)集成更容易。

2 OpenCV部署方法

安裝OpenCV之前需要先安裝numpy, matplotlib。

創(chuàng)建Python虛擬環(huán)境cv, 在cv中安裝即可。

先安裝OpenCV-Python, 由于一些經(jīng)典的算法被申請了版權(quán),新版本有很大的限制,所以選用3.4.3以下的版本

pip install opencv-python==3.4.2.17

現(xiàn)在可以測試下是否安裝成功,運(yùn)行以下代碼無報(bào)錯(cuò)則說明安裝成功。

import cv2
# 讀一個(gè)圖片并進(jìn)行顯示(圖片路徑需自己指定)
lena=cv2.imread("1.jpg")
cv2.imshow("image",lena)
cv2.waitKey(0)

如果我們要利用SIFT和SURF等進(jìn)行特征提取時(shí),還需要安裝:

pip install opencv-contrib-python==3.4.2.17



猜你喜歡:

什么是KNN算法?

什么是OCR?OCR技術(shù)詳解

深度分析box來提升檢測性能的方法

深度相機(jī)常見技術(shù):深度相機(jī)的相位求解

黑馬程序員人工智能培訓(xùn)課程

分享到:
在線咨詢 我要報(bào)名
和我們在線交談!