OpenCV是一款功能強大的計算機視覺和機器學習庫,它能夠幫助我們處理圖像和視頻,並實現人臉檢測、物體識別等功能。它是免費的、開源的,並且支持多種語言,包括Python、C++等。
一、OpenCV的下載與安裝
安裝OpenCV有多種方法,包括使用二進制文件、從源代碼構建,還可以使用包管理器等等。下面將詳細介紹使用二進制文件安裝和使用包管理器安裝的方法。
1. 使用二進制文件安裝
使用二進制文件來安裝OpenCV是一種簡單和快速的方式,這裡我們介紹在Windows下的安裝方法。
Step 1:下載OpenCV二進制文件
打開OpenCV的官方網站 https://opencv.org/releases/,下載安裝程序對應的OpenCV版本。選擇合適的版本以後,雙擊運行安裝程序。
Step 2:安裝OpenCV
在安裝程序運行後,你需要選擇要安裝的組件。OpenCV包含了很多的組件,包括Python模塊、C++頭文件等。在這裡我們選擇待安裝的組件如下圖所示:
[X] For windows user built-in [V] Python 3.7 [X] Install to C:\Program Files\opencv
在勾選完畢後選擇Install開始安裝,安裝完成後點擊Finish。
Step 3:安裝OpenCV的Python模塊
接下來需要安裝OpenCV的Python模塊,打開Python命令行,輸入以下命令:
python -m pip install opencv-python
如果你需要使用Contrib模塊,可以輸入以下命令:
python -m pip install opencv-contrib-python
2. 使用包管理器安裝
使用包管理器來安裝OpenCV是一種更優美的方法,它可以自動解決依賴問題,安裝過程更加方便。
Step 1:更新系統
在使用包管理器安裝OpenCV之前,你需要先更新系統,使用以下命令:
sudo apt-get update
Step 2:安裝OpenCV
在更新系統之後,安裝OpenCV的Python模塊可以使用以下命令:
sudo apt-get install python-opencv
如果你需要安裝Contrib模塊,可以輸入以下命令:
sudo apt-get install python-opencv-contrib
二、OpenCV的使用
安裝完成後,你就可以開始使用OpenCV了。下面將介紹一些OpenCV庫中的常用函數及其使用方法。
1. 圖像讀取與顯示
使用OpenCV庫中的cv2.imread()函數可以讀取本地磁盤上的圖片,使用cv2.imshow()函數可以在窗口顯示圖片。
import cv2 img = cv2.imread('test.jpg') # 讀取圖片 cv2.imshow('test',img) # 顯示圖片 cv2.waitKey(0) # 等待鍵盤輸入 cv2.destroyAllWindows() # 關閉顯示窗口
其中test.jpg是本地文件名,cv2.imshow()函數中的test是窗口名。
2. 圖像縮放
可以使用OpenCV庫中的cv2.resize()函數進行圖像縮放。
import cv2 img = cv2.imread('test.jpg') # 讀取圖片 res = cv2.resize(img,(600,600),interpolation=cv2.INTER_CUBIC) # 縮放 cv2.imshow('resized',res) # 顯示縮放後的圖片 cv2.waitKey(0) # 等待鍵盤輸入 cv2.destroyAllWindows() # 關閉顯示窗口
其中(600,600)是縮放後的圖片大小。
3. 圖像裁剪
可以使用OpenCV庫中的numpy索引來對圖像進行裁剪。
import cv2 import numpy as np img = cv2.imread('test.jpg') # 讀取圖片 cropped = img[100:500, 200:600] # 裁剪圖片 cv2.imshow('cropped',cropped) # 顯示裁剪後的圖片 cv2.waitKey(0) # 等待鍵盤輸入 cv2.destroyAllWindows() # 關閉顯示窗口
其中[100:500, 200:600]是裁剪後的圖片範圍,可以根據實際需要進行調整。
三、小結
本文介紹了使用二進制文件和包管理器兩種方式安裝OpenCV,以及介紹了一些常用的OpenCV庫函數。在實際項目中,OpenCV是非常重要的計算機視覺和機器學習庫之一,深入掌握它的使用可以為你的項目開發提供很大的幫助。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/158526.html