Rumah >pembangunan bahagian belakang >Tutorial Python >Mengapa Imej yang Dimuatkan OpenCV Memaparkan Warna Tidak Tepat dalam Matplotlib?
Percanggahan Warna OpenCV: Menyelesaikan Jurang antara Imej yang Dimuatkan dan Diplot
Apabila menggunakan OpenCV untuk memuatkan imej berwarna dan memaparkannya menggunakan Matplotlib, ia bukan jarang ditemui percanggahan dalam warna yang dipaparkan. Ini disebabkan oleh perbezaan dalam pesanan warna lalai antara OpenCV dan Matplotlib.
OpenCV menyimpan imej dalam format Biru-Hijau-Merah (BGR), manakala Matplotlib menjangkakan imej dalam Merah-Hijau-Biru (RGB) format. Apabila memaparkan imej yang dimuatkan dengan OpenCV dalam Matplotlib, saluran warna diterbalikkan, mengakibatkan warna yang salah.
Penyelesaian: Menukar BGR kepada RGB
Untuk membetulkan isu ini, kami perlu menukar secara eksplisit imej yang dimuatkan daripada BGR kepada RGB menggunakan fungsi cvtColor OpenCV.
<code class="python">RGB_img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)</code>
Dengan menggunakan RGB_img dalam plot Matplotlib dan bukannya img asal, kami memastikan susunan warna sepadan dengan jangkaan Matplotlib , dan warna dipaparkan dengan betul.
Kod Kemas Kini
<code class="python">import cv2 import matplotlib.pyplot as plt # Load image with BGR order (default for OpenCV) img = cv2.imread('lena_caption.png', cv2.IMREAD_COLOR) # Convert BGR to RGB for compatibility with Matplotlib RGB_img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) # Create grayscale image bw_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # Create figure for plotting fig, axes = plt.subplots(1, 2) # Plot original image with corrected color order axes[0].imshow(RGB_img) axes[0].set_title('Original Image (RGB)') axes[0].set_xticks([]); axes[0].set_yticks([]) # Plot grayscale image axes[1].imshow(bw_img, cmap='gray') axes[1].set_title('BW Image') axes[1].set_xticks([]); axes[1].set_yticks([]) plt.show()</code>
Atas ialah kandungan terperinci Mengapa Imej yang Dimuatkan OpenCV Memaparkan Warna Tidak Tepat dalam Matplotlib?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!