OpenCV是計(jì)算機(jī)視覺(jué)領(lǐng)域最流行的庫(kù)之一。它最初是用 C 和 C++ 編寫(xiě)的。現(xiàn)在也可以在 Python 中使用。它最初是由英特爾開(kāi)發(fā)的。該庫(kù)是一個(gè)跨平臺(tái)的開(kāi)源庫(kù)。免費(fèi)使用。OpenCV 庫(kù)是一個(gè)高度優(yōu)化的庫(kù),其主要重點(diǎn)是實(shí)時(shí)應(yīng)用程序。
OpenCV 庫(kù)是2500多個(gè)優(yōu)化算法的組合。它可以用來(lái)檢測(cè)和識(shí)別不同的人臉,在圖像中或?qū)崟r(shí)識(shí)別物體,使用視頻和網(wǎng)絡(luò)攝像頭分類(lèi)不同的人類(lèi)行為,跟蹤攝像機(jī)的運(yùn)動(dòng),跟蹤像汽車(chē)、人類(lèi)等移動(dòng)物體。
實(shí)時(shí)計(jì)數(shù)物體,將圖像拼接在一起產(chǎn)生高分辨率圖像,從圖像數(shù)據(jù)庫(kù)中找到類(lèi)似的圖像,從使用閃光燈拍攝的圖像中去除紅眼,提高圖像質(zhì)量,跟蹤眼球運(yùn)動(dòng),跟蹤人臉等
它擁有大約4.7萬(wàn)活躍用戶(hù)社區(qū),估計(jì)下載量超過(guò)1800萬(wàn)次。許多大公司,如谷歌,亞馬遜,特斯拉,微軟,本田等使用OpenCV,使他們的產(chǎn)品更好,更智能。
先決條件
在開(kāi)始編寫(xiě)代碼之前,我們需要在我們的設(shè)備上安裝 OpenCV 。如果你是專(zhuān)業(yè)的編程人員并且知道每一個(gè) IDE,那么去 Pycharm 并且在設(shè)置中從它的包管理器中安裝 OpenCV-python。
如果您是初學(xué)者或中級(jí)程序員,或者只是想關(guān)注該博客,那么我們將使用代碼編輯器而不是IDE。只需轉(zhuǎn)到Visual Studio Code網(wǎng)站并根據(jù)您的操作系統(tǒng)下載最新版本即可。現(xiàn)在,我們將創(chuàng)建一個(gè)虛擬環(huán)境,在其中將安裝 OpenCV。打開(kāi)終端,然后使用cd定位到桌面。使用名為opencv的mkdir創(chuàng)建一個(gè)文件夾然后在以下命令中運(yùn)行。
python -m venv env
現(xiàn)在使用 env\\scripts\\activate 命令激活環(huán)境,你會(huì)看到在 C:\\Users\\username\\Desktop\\opencv 前出現(xiàn)一個(gè)帶小括號(hào)的 (env)。現(xiàn)在只需使用 pip 安裝 OpenCV。
pip install opencv-python
我們將在這個(gè)博客中涵蓋7個(gè)主題:
- 讀、寫(xiě)和展示一個(gè)圖像
- 讀取視頻與集成網(wǎng)絡(luò)攝像頭
- 縮放和裁剪圖像
- 使用函數(shù)的基本圖像濾波器
- 繪制不同的形狀
- 在圖像上寫(xiě)文字
- 檢測(cè)和裁剪人臉
讀、寫(xiě)和展示一個(gè)圖像
為了使用 OpenCV 讀取圖像,我們使用函數(shù) imread() ,為了顯示圖像,我們使用函數(shù) imshow() ,為了寫(xiě)入圖像,我們使用函數(shù) imwrite()。讓我們看看每一個(gè)的語(yǔ)法。
imread():
img = cv2.imread("PATH_TO_IMAGE.jpg/png")
Example
img = imread("images/dog0.jpg")
imshow():
cv2.imshow("WINDOW NAME",IMG_VAR)
Example
imshow("Dog Image",img)
imwrite():
cv2.imwrite(FILENAME, IMAGE)
filename: A string representing the file name. The filename must include image format like .jpg, .png, etc.
image: It is the image that is to be saved.
Example
cv2.imwrite('images/img',img)
讀取視頻與集成網(wǎng)絡(luò)攝像頭
讀取視頻文件與讀取 OpenCV 中的圖像文件非常相似。不同之處在于我們使用 cv2.videocapture()
語(yǔ)法
video = cv2.VideoCapture("FILEPATH.mp4")
Example
video = cv2.VideoCapture("video/dog/dog.mp4")
視頻是許多幀圖像在一起的集合,每一幀都是一個(gè)圖像。要使用 OpenCV 觀看視頻,我們只需要使用 while 循環(huán)顯示視頻的每一幀。
while True:
success , img = cap.read()
cv2.imshow("Video",img)
if cv2.waitKey(1) & 0xff==ord('q'):##key 'q' will break the loop
break
為了與網(wǎng)絡(luò)攝像頭集成,我們需要傳遞網(wǎng)絡(luò)攝像頭的端口值,而不是路徑到視頻。如果你使用的是筆記本電腦,沒(méi)有連接任何外部攝像頭,那么簡(jiǎn)單地傳遞0,如果你連接了任何外部攝像頭,那么傳遞一個(gè)攝像頭端口值。
cap = cv2.VideoCapture(0)
cap.set(3,640) ## Frame width
cap.set(4,480) ## Frame Height
cap.set(10,100) ## Brightness
while True:
success, img = cap.read()
cv2.imshow("Video",img)
if cv2.waitKey(1) & 0xff == ord('q'):
break
-
C++
+關(guān)注
關(guān)注
22文章
2124瀏覽量
77112 -
計(jì)算機(jī)視覺(jué)
+關(guān)注
關(guān)注
9文章
1715瀏覽量
47625 -
OpenCV
+關(guān)注
關(guān)注
33文章
652瀏覽量
44789
發(fā)布評(píng)論請(qǐng)先 登錄
沒(méi)有專(zhuān)利的opencv-python 版本
LabVIEW+Python+openCV
OpenCV-Python-Toturial-中文版
python圖像處理opencv步驟是怎么樣的
python代碼示例之基于Python的日歷api調(diào)用代碼實(shí)例
機(jī)器學(xué)習(xí)必學(xué)的Python代碼示例集
OpenCV中的Python實(shí)現(xiàn)
Linux Debian與Python、Flask和OpenCV識(shí)別面部
使用opencv和python進(jìn)行智能火災(zāi)檢測(cè)
OpenCV常用的 7 個(gè)示例(Python版)1
評(píng)論