使用Python和OpenCV轉換BGR和RGB


OpenCV是一個主要用於即時計算機視覺的程式設計函式庫。該庫是跨平臺的,並根據Apache許可證獲得免費和開源軟體許可。它用C++編寫,並具有Python繫結,使其易於在Python應用程式中使用。

在本文中,我們將學習如何使用Python和OpenCV轉換BGR和RGB。在繼續之前,讓我們首先了解BGR和RGB。

什麼是BGR和RGB

RGB和BGR都是用於表示數字影像中顏色的顏色模型。但是,這兩個顏色模型之間的主要區別在於顏色通道的排列順序。

  • 在RGB顏色模型中,顏色由紅色、綠色和藍色顏色通道表示。紅色通道顯示有關紅色量的資訊,藍色和綠色通道也是如此。透過組合這些資訊,我們得到整張影像。

  • 而在BGR模型中(也稱為OpenCV模型),顏色通道是RGB模型的反向。但是特定光包含有關該特定光強度的資訊。

紅色、綠色和藍色子畫素的佈局是RGB和BGR之間主要的區別。雖然BGR基本上是RGB的反向,但顏色鮮豔度和準確性沒有區別。一些BGR螢幕,例如技嘉M27Q,甚至提供了適合編輯工作的色彩準確度評分,它們在遊戲和電影中看起來很棒。

讓我們看看如何使用Python和OpenCV執行基於自定義種子的輪廓檢測步驟。

步驟1:匯入所需的庫

要在BGR和RGB顏色空間之間轉換影像,我們需要匯入所需的庫。我們將使用以下庫:

  • OpenCV - 用於讀取和處理影像。

  • Matplotlib - 用於顯示影像。

import cv2
import matplotlib.pyplot as plt

步驟2:讀取影像

在BGR和RGB顏色空間之間轉換影像的第一步是讀取影像。我們可以使用cv2.imread函式從檔案中讀取影像。

在此程式碼段中,我們使用了cv2.cvtColor函式將BGR影像轉換為RGB,然後使用matplotlib庫顯示它。

# Read the image in BGR color space
img = cv2.imread('image1.jpg')

# Display the image
cv2.imshow('this is normal image in RGB', img)
cv2.waitKey(0)
cv2.destroyAllWindows()

步驟3:從RGB轉換為BGR

要將影像從BGR顏色空間轉換為RGB顏色空間,我們只需要使用cv2.cvtColor函式並將BGR影像和cv2.COLOR_BGR2RGB標誌作為輸入。

在此程式碼段中,我們已將BGR影像轉換為RGB,並使用matplotlib庫顯示它。

# Convert the image from RGB to BGR
bgr_img = cv2.cvtColor(img, cv2.COLOR_RGB2BGR)

# Display the BGR image
cv2.imshow('this is BGR image', bgr_image)
cv2.waitKey(0)
cv2.destroyAllWindows()

步驟4:從BGR轉換為RGB

要將影像從RGB顏色空間轉換為BGR顏色空間,我們可以使用相同的cv2.cvtColor函式並將RGB影像和cv2.COLOR_RGB2BGR標誌作為輸入。

在此程式碼段中,我們已將RGB影像轉換為BGR,並使用matplotlib庫顯示它。

# Convert the image from BGR to RGB
rgb_img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)

# Display the RGB image
cv2.imshow('this is RGB image', rgb_img)
cv2.waitKey(0)
cv2.destroyAllWindows()

示例

以下是完整的示例:

import cv2
import matplotlib.pyplot as plt

# Read the image in BGR color space
img = cv2.imread('image.jpg')

# Display the image
cv2.imshow('This is normal image in RGB', img)
cv2.waitKey(0)
cv2.destroyAllWindows()

# Convert the image from RGB to BGR
bgr_img = cv2.cvtColor(img, cv2.COLOR_RGB2BGR)

# Display the BGR image
cv2.imshow('This is BGR image', bgr_img)
cv2.waitKey(0)
cv2.destroyAllWindows()

# Convert the image from BGR to RGB
rgb_img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)

# Display the RGB image
cv2.imshow('This is RGB image', rgb_img)
cv2.waitKey(0)
cv2.destroyAllWindows()

輸出

原始影像:

RGB到BGR:

轉換回RGB:

結論

在本文中,我們解釋瞭如何將影像從BGR轉換為RGB,反之亦然。我們探討了RGB和BGR顏色空間。我們已經完成了將RGB影像轉換為BGR影像的所有步驟。透過遵循本文中的所有步驟,您可以使用Python語言的OpenCV庫輕鬆地將影像從一個顏色空間轉換為另一個顏色空間。

更新於:2023年4月20日

瀏覽量:10K+

開啟您的職業生涯

透過完成課程獲得認證

開始學習
廣告
© . All rights reserved.