Python是一種高級編程語言,具有廣泛的應(yīng)用范圍。其中一項重要的應(yīng)用是計算機視覺(CV)。CV是一種利用計算機技術(shù)對圖像和視頻進行處理和解析的學(xué)科。Python通過其CV庫和工具,如OpenCV、scikit-image和Pillow等,來支持CV。
OpenCV是Python中最流行的CV庫之一,它提供了許多CV算法和功能。下面是使用OpenCV庫實現(xiàn)的一個簡單的CV例子:
import cv2 # 加載圖像 img = cv2.imread('image.jpg') # 將圖像轉(zhuǎn)換為灰度 gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 閾值處理 ret, thresholded = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY) # 顯示二值化圖像 cv2.imshow('thresholded image', thresholded) cv2.waitKey(0) cv2.destroyAllWindows()
在上面的代碼中,我們通過OpenCV讀取了名為'image.jpg'的圖像,并將其轉(zhuǎn)換為灰度圖像。然后我們使用閾值處理將其轉(zhuǎn)換為二值圖像,并將其顯示出來。注意,我們調(diào)用了'cv2.waitKey(0)'來等待用戶按任意鍵,然后調(diào)用'cv2.destroyAllWindows()'關(guān)閉所有打開的圖像窗口。
除了OpenCV外,另一個流行的Python CV庫是scikit-image。它提供了許多CV算法和功能,如圖像分割、邊緣檢測和面部識別等。下面是使用scikit-image庫實現(xiàn)的一個簡單例子:
from skimage import io from skimage.filters import threshold_otsu # 加載圖像 image = io.imread('image.jpg', as_gray=True) # Otsu閾值處理 thresh = threshold_otsu(image) binary = image >thresh # 顯示二值化圖像 io.imshow(binary) io.show()
在上面的代碼中,我們使用scikit-image庫讀取名為'image.jpg'的灰度圖像。我們?nèi)缓笫褂肙tsu閾值處理將其轉(zhuǎn)換為二值圖像,并將其顯示出來。注意,我們使用'skimage.io.imshow()'顯示圖像并使用'skimage.io.show()'等待用戶關(guān)閉所有打開的圖像窗口。
總的來說,Python在處理和分析圖像方面具有強大的功能和廣泛的應(yīng)用。OpenCV和scikit-image是在Python中進行CV的兩個最流行的庫。使用其CV庫和工具,Python可用于圖像處理、計算機視覺和許多其他領(lǐng)域。