Skip to content

4️⃣ 顏色與影像轉換

🎯 為什麼需要顏色與影像轉換?

在電腦視覺應用中,影像的顏色格式是 關鍵因素,不同的顏色空間適用於不同的任務。

適用場景

  • 灰階轉換:適合邊緣偵測與影像處理
  • RGB 與 BGR 轉換:用於 OpenCV 影像顯示與處理
  • HSV 轉換:適用於顏色過濾與物件偵測

✅ 轉換為灰階影像(Grayscale)

我們可以使用 cv2.cvtColor() 來將彩色影像轉換為灰階影像。

import cv2

# 讀取影像
image = cv2.imread("image.jpg")

# 轉換為灰階影像
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

# 顯示影像
cv2.imshow("Grayscale Image", gray)
cv2.waitKey(0)
cv2.destroyAllWindows()

灰階影像可以降低計算成本,適合進行邊緣偵測與影像分析。


✅ RGB 與 BGR 轉換

在 OpenCV 中,影像是 BGR 格式,而非 RGB

# 轉換為 RGB 格式
rgb_image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
這在使用 Matplotlib 顯示影像時非常重要,因為 Matplotlib 預設使用 RGB 格式。


✅ HSV 顏色空間(Hue, Saturation, Value)

HSV 顏色空間適用於顏色篩選與物件偵測。

# 轉換為 HSV 格式
hsv_image = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)

HSV 可以幫助我們分離顏色,常用於顏色篩選應用。


✅ 使用閾值處理(Thresholding)

閾值處理可將灰階影像轉換為黑白二值影像。

# 設定閾值
_, binary = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY)

cv2.imshow("Binary Image", binary)
cv2.waitKey(0)
cv2.destroyAllWindows()

這種方法適用於 OCR、物件偵測等應用。


📝 總結

功能 語法
轉換為灰階 cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
BGR 轉換為 RGB cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
BGR 轉換為 HSV cv2.cvtColor(image, cv2.COLOR_BGR2HSV)
閾值處理 cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY)

🚀 現在你已經學會如何處理顏色與影像轉換!接下來,我們將學習邊緣偵測與形態學操作! 😊