一、什麼是OpenCV?¶
OpenCV(Open Source Computer Vision Library)是一個開源的計算機視覺庫,提供了大量用於圖像處理、目標檢測、人臉識別等任務的函數。對於編程初學者來說,用Python結合OpenCV學習圖像處理非常友好,它能讓我們快速實現“讓計算機‘看懂’圖像”的基礎功能。
二、安裝OpenCV¶
要開始使用OpenCV,首先需要安裝對應的Python庫。最簡單的方式是通過pip安裝:
pip install opencv-python
如果安裝速度較慢,可以嘗試國內鏡像源:
pip install opencv-python -i https://pypi.tuna.tsinghua.edu.cn/simple
安裝完成後,打開Python環境(如PyCharm、Jupyter Notebook或命令行),輸入以下代碼驗證是否安裝成功:
import cv2
print(cv2.__version__) # 若輸出版本號(如4.8.0),則安裝成功
三、讀取圖像¶
在計算機視覺中,“讀取圖像”是最基礎的操作,OpenCV提供了cv2.imread()函數來實現。
1. 函數介紹¶
cv2.imread()的語法爲:
img = cv2.imread(image_path, flags)
image_path:圖像文件的路徑(相對路徑或絕對路徑)。flags(可選參數):讀取圖像的方式,常用值有:cv2.IMREAD_COLOR(默認值,整數1):讀取彩色圖像(包含RGB三個通道)。cv2.IMREAD_GRAYSCALE(整數0):讀取灰度圖像(只有亮度信息,無顏色)。cv2.IMREAD_UNCHANGED(整數-1):讀取原始圖像(包含透明通道,若有)。
2. 代碼示例:讀取圖像¶
假設我們有一張名爲test.jpg的圖像文件,放在與Python代碼相同的文件夾下。代碼如下:
import cv2 # 導入OpenCV庫
# 讀取圖像,路徑爲當前文件夾下的test.jpg
img = cv2.imread('test.jpg')
# 檢查圖像是否讀取成功(若路徑錯誤或圖像不存在,img會返回None)
if img is None:
print("圖像讀取失敗!請檢查路徑是否正確。")
else:
print("圖像讀取成功!")
四、顯示圖像¶
讀取圖像後,需要用cv2.imshow()函數在窗口中顯示圖像。
1. 函數介紹¶
cv2.imshow()的語法爲:
cv2.imshow(window_name, image)
window_name:窗口的名稱(字符串,如”Image”)。image:要顯示的圖像對象(由cv2.imread()返回的變量)。
顯示圖像時,窗口會持續顯示直到用戶按任意鍵關閉。爲了避免窗口“一閃而過”,需要配合cv2.waitKey()函數:
- cv2.waitKey(0):等待鍵盤輸入,參數爲毫秒數(0表示無限等待,按任意鍵關閉窗口)。
- cv2.destroyAllWindows():關閉所有由OpenCV創建的窗口,釋放內存。
2. 代碼示例:顯示圖像¶
將讀取和顯示步驟結合:
import cv2
# 步驟1:讀取圖像
img = cv2.imread('test.jpg') # 替換爲你的圖像路徑
# 步驟2:檢查圖像是否有效
if img is None:
print("圖像讀取失敗!請檢查路徑是否正確。")
else:
# 步驟3:顯示圖像
cv2.imshow('Original Image', img) # 創建名爲"Original Image"的窗口顯示圖像
# 步驟4:等待按鍵輸入(0表示無限等待)
cv2.waitKey(0)
# 步驟5:關閉所有窗口
cv2.destroyAllWindows()
五、完整示例與常見問題¶
1. 完整代碼(讀取+顯示彩色圖像)¶
import cv2
# 讀取圖像(彩色模式)
img = cv2.imread('test.jpg') # 替換爲你的圖像路徑
# 檢查圖像是否讀取成功
if img is None:
print("錯誤:圖像讀取失敗!請確認路徑正確。")
else:
# 顯示圖像
cv2.imshow('Color Image', img)
# 等待按鍵(按任意鍵關閉窗口)
cv2.waitKey(0)
# 關閉窗口
cv2.destroyAllWindows()
2. 常見問題及解決方法¶
- 問題1:圖像顯示爲黑屏或顏色異常
原因:OpenCV默認讀取圖像的顏色通道順序是BGR(而非RGB),若直接顯示彩色圖像,可能會出現“紅色變藍色”等異常。
解決:若想得到RGB圖像,可通過cv2.cvtColor()轉換:
import cv2
img = cv2.imread('test.jpg')
img_rgb = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) # BGR轉RGB
cv2.imshow('RGB Image', img_rgb)
cv2.waitKey(0)
cv2.destroyAllWindows()
- 問題2:圖像路徑錯誤導致無法顯示
原因:cv2.imread()返回None,需檢查路徑是否正確。
解決: - 使用絕對路徑(如
C:/Users/YourName/Pictures/test.jpg),避免相對路徑混淆。 - 確認圖像格式支持(如JPG、PNG等),且圖像未被損壞。
六、總結¶
本文通過“安裝OpenCV→讀取圖像→顯示圖像”三個核心步驟,帶你入門Python OpenCV的基礎操作。關鍵點如下:
1. cv2.imread()用於讀取圖像,需注意路徑和顏色通道順序。
2. cv2.imshow()用於顯示圖像,需配合cv2.waitKey()和cv2.destroyAllWindows()避免窗口異常。
3. 若圖像顯示失敗,優先檢查路徑是否正確。
動手實踐是最好的學習方式!試着替換代碼中的圖像路徑,讀取並顯示自己的圖片吧~