影像載入中的OpenCV 色彩轉換差異
嘗試使用Python OpenCV 載入和顯示彩色影像時,使用者可能會遇到意外的顏色偏差在生成的圖像中。出現此問題的原因是 OpenCV 和 Matplotlib 庫之間的預設顏色排序方案不同。
問題描述
使用者提供的程式碼涉及載入顏色使用OpenCV 的cv2.imread() 函數讀取影像,並使用cv2.cvtColor() 將其轉換為灰度。隨後,使用 Matplotlib 的 plt.imshow() 函數繪製原始影像和灰階影像。儘管使用了 IMREAD_COLOR 標誌,繪製的影像仍呈現扭曲的色彩。
潛在問題
預設情況下,OpenCV 使用藍-綠-紅 (BGR) 顏色排序影像,而 Matplotlib 使用紅-綠-藍 (RGB)。 OpenCV載入的影像顯示在Matplotlib中時,通道顛倒,導致顏色不一致。
解決方案
要解決此問題,使用者可以明確使用 cv2.cvtColor() 函數將從 OpenCV 載入的 BGR 映像轉換為 RGB。轉換後的 RGB 影像可用於在 Matplotlib 中進行繪圖。
<code class="python">import cv2 import matplotlib.pyplot as plt # Load image in BGR img = cv2.imread('lena_caption.png', cv2.IMREAD_COLOR) # Convert BGR to RGB RGB_img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) # Plot RGB image in Matplotlib plt.imshow(RGB_img) plt.title('Original Image in RGB') plt.xticks([]), plt.yticks([]) plt.show()</code>
以上是以下是一些適合您提供的文字內容的基於問題的標題: * **為什麼使用 Matplotlib 繪製時我的 OpenCV 影像看起來不同? * **為什麼會出現顏色差異的詳細內容。更多資訊請關注PHP中文網其他相關文章!