一、什麼是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. 若圖像顯示失敗,優先檢查路徑是否正確。

動手實踐是最好的學習方式!試着替換代碼中的圖像路徑,讀取並顯示自己的圖片吧~

小夜