OpenCV 影像載入顏色差異已解決
使用 Python OpenCV 載入彩色影像進行後續繪圖時,觀察到顯示的顏色出現扭曲。出現此問題的原因是 OpenCV 和 matplotlib 使用不同的色彩空間表示。
了解色彩空間差異:
OpenCV 採用BGR(藍-綠-紅) ) 色彩空間,而matplotlib 使用RGB(紅-綠藍)色彩空間。這種不相容性會導致顯示這些影像時出現顏色混合。
解決問題:
要修正此問題,需要將影像轉換為繪製先前的 RGB 色彩空間。這可以使用 OpenCV 的轉換函數來完成:
<code class="python">RGB_img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)</code>
此步驟可確保繪製影像中的顏色準確反映原始輸入影像。
範例:
以下程式碼片段示範了此解決方案:
<code class="python">import cv2 import matplotlib.pyplot as plt # Loading the image using OpenCV (BGR by default) img = cv2.imread('lena_caption.png') # Converting the image to RGB RGB_img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) # Plotting the original and converted RGB image plt.subplot(1, 2, 1), plt.imshow(img) plt.title('Original Image (BGR)') plt.subplot(1, 2, 2), plt.imshow(RGB_img) plt.title('Converted RGB Image') plt.show()</code>
透過採用此轉換技術,我們可以使用OpenCV 和matplotlib成功載入和繪製彩色影像,而不會遇到任何顏色失真。
以上是**為什麼我的 OpenCV 影像在使用 Matplotlib 繪製時出現顏色失真?的詳細內容。更多資訊請關注PHP中文網其他相關文章!