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。
✅ 這在使用 Matplotlib 顯示影像時非常重要,因為 Matplotlib 預設使用 RGB 格式。✅ HSV 顏色空間(Hue, Saturation, Value)
HSV 顏色空間適用於顏色篩選與物件偵測。
✅ 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) |
🚀 現在你已經學會如何處理顏色與影像轉換!接下來,我們將學習邊緣偵測與形態學操作! 😊