[OpenCV基礎][Python]影像的色彩空間轉換

更新於 發佈於 閱讀時間約 4 分鐘

涉及圖像處理計算機視覺時,色彩空間轉換是一個常見操作,應用如下:

  • 降維: 將一張彩色圖像轉換為灰度圖像可以減少數據的維度,簡化處理過程,同時在某些情況下保留重要的視覺信息。
  • 突顯特徵: 在某些情況下,某些色彩通道可能包含冗餘或不必要的信息,通過轉換到其他色彩空間,可以更好地突顯圖像中的重要特徵
  • 色彩分割和物體識別: 在一些應用中,特定色彩空間的使用有助於區分不同對象區域,從而實現對象的識別或分割。

影像色彩空間轉換是指將一張圖片從一種色彩表示方式轉換為另一種的過程。常見的色彩空間包括RGB(紅綠藍)CMYK(青、品紅、黃、黑)、HSV(色相、飽和度、明度)等。

圖檔名稱有連結到維基百科色彩空間詳細的介紹。


HSV與HSL 色彩空間

HSV與HSL 色彩空間


常見的色彩空間轉換方法:

  1. RGB到灰度(Grayscale): 將彩色圖像轉換為灰度圖像。這可以通過取RGB通道的平均值或者使用特定的權重進行轉換來實現。
  2. RGB到HSV:RGB色彩空間轉換為HSV色彩空間。這種轉換使得色相、飽和度明度的調整更加直觀。
  3. RGB到CMYK:RGB色彩空間轉換為CMYK色彩空間,通常用於印刷。CMYK表示青、品紅、黃和黑。
  4. HSV到RGB:HSV色彩空間轉換回RGB色彩空間。這在進行色彩修正合成不同效果的圖像時很有用。
  5. YUV轉換:RGB轉換YUV色彩空間,其中Y表示亮度UV表示色度。這在數字視頻編碼中常被使用。
  6. Lab色彩空間: CIE Lab色彩空間是一種基於人眼視覺感知的色彩模型,它分為亮度(L)和兩個色度通道(a和b)

OpenCV的cvtColor則提供了以下幾種轉換代碼:

語法:

cv2.cvtColor(src, code)
  • src: 輸入圖像,即待轉換的圖像。
  • code: 轉換代碼,指定了轉換的類型,例如從BGR到灰度、BGR到HSV等。可以使用cv2.COLOR_* 常數來指定轉換類型。

轉換代碼:

  1. BGR到灰度(Grayscale):
    cv2.COLOR_BGR2GRAY
  2. 灰度到BGR:
    cv2.COLOR_GRAY2BGR
  3. BGR到HSV:
    cv2.COLOR_BGR2HSV
  4. HSV到BGR:
    cv2.COLOR_HSV2BGR
  5. BGR到Lab:
    cv2.COLOR_BGR2Lab
  6. Lab到BGR:
    cv2.COLOR_Lab2BGR
  7. BGR到YUV:
    cv2.COLOR_BGR2YUV
  8. YUV到BGR:
    cv2.COLOR_YUV2BGR
  9. BGR到RGB:
    cv2.COLOR_BGR2RGB
  10. RGB到BGR:
    cv2.COLOR_RGB2BGR
  11. BGR到RGBA:
    cv2.COLOR_BGR2RGBA
  12. RGBA到BGR:
    cv2.COLOR_RGBA2BGR

程式範例

轉換成灰階

import cv2

# 讀取輸入圖像
img = cv2.imread('111.jpg')
# 將圖片轉換成灰階影像
gray_image = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

# 顯示原始圖像和灰階後的圖像
cv2.imshow('Original Image', img)
cv2.imshow('Gray Image', gray_image)
cv2.waitKey(0)
cv2.destroyAllWindows()
灰階比較圖

灰階比較圖

轉換成HSV

import cv2

# 讀取輸入圖像
img = cv2.imread('111.jpg')
# 將圖片轉換成HSV影像
gray_image = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)

# 顯示原始圖像和HSV後的圖像
cv2.imshow('Original Image', img)
cv2.imshow('HSV Image', HSV_image)
cv2.waitKey(0)
cv2.destroyAllWindows()
HSV轉換後

HSV轉換後


根據自己需要的影像特徵來選用想要的色彩空間吧~












留言
avatar-img
留言分享你的想法!
avatar-img
螃蟹_crab的沙龍
143會員
253內容數
本業是影像辨識軟體開發,閒暇時間進修AI相關內容,將學習到的內容寫成文章分享。
螃蟹_crab的沙龍的其他內容
2025/02/15
在電腦視覺應用中,輪廓(Contour)常用來描述物體的邊界。 當圖像中有雜訊或物體邊緣過於複雜時,我們可以利用輪廓逼近技術,將輪廓簡化成較少點數的多邊形,這不僅有助於後續的形狀分析,也能提高處理速度。 本文將介紹如何使用 OpenCV 中的 cv2.arcLength 與 cv2.approx
Thumbnail
2025/02/15
在電腦視覺應用中,輪廓(Contour)常用來描述物體的邊界。 當圖像中有雜訊或物體邊緣過於複雜時,我們可以利用輪廓逼近技術,將輪廓簡化成較少點數的多邊形,這不僅有助於後續的形狀分析,也能提高處理速度。 本文將介紹如何使用 OpenCV 中的 cv2.arcLength 與 cv2.approx
Thumbnail
2024/12/02
中值濾波器(Adaptive Median Filter)是一種針對噪聲去除的圖像處理技術,主要應用於處理含有椒鹽雜訊的圖像,但在椒鹽雜訊過大時就會面臨,若為了處理掉雜訊,使用的處理窗口(kernel)就要大一點,會造成圖像的邊緣模糊掉。 後面為解決這個問題,就發展了自適應中值濾波器,其概念源自於
Thumbnail
2024/12/02
中值濾波器(Adaptive Median Filter)是一種針對噪聲去除的圖像處理技術,主要應用於處理含有椒鹽雜訊的圖像,但在椒鹽雜訊過大時就會面臨,若為了處理掉雜訊,使用的處理窗口(kernel)就要大一點,會造成圖像的邊緣模糊掉。 後面為解決這個問題,就發展了自適應中值濾波器,其概念源自於
Thumbnail
2024/10/03
在影像處理中,形態學操作是非常重要的一種技術,能夠幫助我們去除噪點、強化特徵、修復物體的形狀等。形態學操作的核心是「結構元素」(kernel),不同形狀的結構元素會產生不同的處理效果。本文將介紹如何使用不同形狀的結構元素來進行圖像處理,並結合實際程式範例和測試圖片來說明其效果。
Thumbnail
2024/10/03
在影像處理中,形態學操作是非常重要的一種技術,能夠幫助我們去除噪點、強化特徵、修復物體的形狀等。形態學操作的核心是「結構元素」(kernel),不同形狀的結構元素會產生不同的處理效果。本文將介紹如何使用不同形狀的結構元素來進行圖像處理,並結合實際程式範例和測試圖片來說明其效果。
Thumbnail
看更多
你可能也想看
Thumbnail
「欸!這是在哪裡買的?求連結 🥺」 誰叫你太有品味,一發就讓大家跟著剁手手? 讓你回購再回購的生活好物,是時候該介紹出場了吧! 「開箱你的美好生活」現正召喚各路好物的開箱使者 🤩
Thumbnail
「欸!這是在哪裡買的?求連結 🥺」 誰叫你太有品味,一發就讓大家跟著剁手手? 讓你回購再回購的生活好物,是時候該介紹出場了吧! 「開箱你的美好生活」現正召喚各路好物的開箱使者 🤩
Thumbnail
在某些特殊情況下,需要將圖片進行黑白反轉,例如Tesseract(OCR辨識引擎)就有建議黑底白字的狀況下辨識率較高。 本文將使用 NumPy 進行影像黑白反轉,並顯示反轉前後的影像。
Thumbnail
在某些特殊情況下,需要將圖片進行黑白反轉,例如Tesseract(OCR辨識引擎)就有建議黑底白字的狀況下辨識率較高。 本文將使用 NumPy 進行影像黑白反轉,並顯示反轉前後的影像。
Thumbnail
在影像辨識中,若遇到物件與背景難以分辨的狀況下,先做一下色彩分析,知道了色彩強度階層上的像素數,有助於了解後續需要做什麼處理,比較好分割出辨識物。 若想辨識的物件與背景的RGB值過於接近,也比較好說明此狀況,為什麼較難分割出物件。 成果呈現 第一張圖:左邊為原圖,右邊為分析結果的圖,用其他顏
Thumbnail
在影像辨識中,若遇到物件與背景難以分辨的狀況下,先做一下色彩分析,知道了色彩強度階層上的像素數,有助於了解後續需要做什麼處理,比較好分割出辨識物。 若想辨識的物件與背景的RGB值過於接近,也比較好說明此狀況,為什麼較難分割出物件。 成果呈現 第一張圖:左邊為原圖,右邊為分析結果的圖,用其他顏
Thumbnail
這篇文章主要介紹了繪圖軟體中的色彩模式,包括RGB和CMYK的概念和用法。對於網路上使用和印刷的影像處理有很好的指導意義。
Thumbnail
這篇文章主要介紹了繪圖軟體中的色彩模式,包括RGB和CMYK的概念和用法。對於網路上使用和印刷的影像處理有很好的指導意義。
Thumbnail
上一篇提到利用cv2.inRangex,建立遮罩來過濾出紅球。這次我們稍微更動一下程式碼,將紅球變顏色。 [OpenCV][Python]利用cv2.inRange搭配cv2.bitwise_and過濾紅球 結果圖 將紅球改變顏色成藍球
Thumbnail
上一篇提到利用cv2.inRangex,建立遮罩來過濾出紅球。這次我們稍微更動一下程式碼,將紅球變顏色。 [OpenCV][Python]利用cv2.inRange搭配cv2.bitwise_and過濾紅球 結果圖 將紅球改變顏色成藍球
Thumbnail
直方圖均衡化處理是一種通過調整圖像的直方圖來改變圖像外觀和質量的圖像處理技術。這通常涉及對圖像的亮度、對比度和顏色分佈進行調整 此方法對於背景和前景均亮或均暗的影像很有用。​並在曝光過度或曝光不足的照片中獲得更好的細節。
Thumbnail
直方圖均衡化處理是一種通過調整圖像的直方圖來改變圖像外觀和質量的圖像處理技術。這通常涉及對圖像的亮度、對比度和顏色分佈進行調整 此方法對於背景和前景均亮或均暗的影像很有用。​並在曝光過度或曝光不足的照片中獲得更好的細節。
Thumbnail
直方圖是對圖像中像素強度分布的圖形表示。通過分析直方圖,我們可以獲得有關圖像對比度、亮度和色彩分佈的有用信息。
Thumbnail
直方圖是對圖像中像素強度分布的圖形表示。通過分析直方圖,我們可以獲得有關圖像對比度、亮度和色彩分佈的有用信息。
Thumbnail
在某些特別的情況下,需要去調整亮度及對比度,讓我們想要的影像特徵更加明顯 本文將介紹利用這兩個函數 cv2.convertScaleAbs 和 cv2.addWeighted 來調整亮度及對比度。
Thumbnail
在某些特別的情況下,需要去調整亮度及對比度,讓我們想要的影像特徵更加明顯 本文將介紹利用這兩個函數 cv2.convertScaleAbs 和 cv2.addWeighted 來調整亮度及對比度。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News