Saat file gambar dibaca dengan fungsi OpenCV imread(), urutan warnanya adalah BGR (biru, hijau, merah). Di sisi lain, di Bantal, urutan warna diasumsikan sebagai RGB (merah, hijau, biru)
Oleh karena itu, jika Anda ingin menggunakan fungsi Bantal dan fungsi OpenCV, Anda perlu mengonversi BGR dan RGB
Anda dapat menggunakan fungsi OpenCV cvtColor() atau hanya mengubah urutan ndarray
Artikel ini menjelaskan konten berikut
- OpenCV adalah BGR, Bantal adalah RGB
- Konversikan BGR dan RGB dengan fungsi OpenCV cvtColor()
- Konversikan BGR dan RGB tanpa menggunakan cvtColor()
Tautan Bersponsor
OpenCV adalah BGR, Bantal adalah RGB
Saat membaca file gambar berwarna, OpenCV imread() dibaca sebagai larik NumPy ndarray dari pil_img = Image.fromarray(im_cv) pil_img.save('data/dst/lena_bgr_pillow.jpg') 4. Urutan warnanya adalah BGR (biru, hijau, merah)
- Membaca dan menyimpan file gambar dengan Python, OpenCV (imread, imwrite)
Fungsi OpenCV pil_img = Image.fromarray(im_cv) pil_img.save('data/dst/lena_bgr_pillow.jpg') 5 yang menyimpan gambar mengasumsikan urutan warna adalah BGR, sehingga disimpan sebagai gambar yang benar
import cv2 import numpy as np from PIL import Image im_cv = cv2.imread('data/src/lena.jpg') cv2.imwrite('data/dst/lena_bgr_cv.jpg', im_cv)
sumber.
Saat melakukan pemrosesan gambar dengan Bantal, Anda dapat mengonversi ndarray menjadi objek pil_img = Image.fromarray(im_cv) pil_img.save('data/dst/lena_bgr_pillow.jpg') 7 dengan pil_img = Image.fromarray(im_cv) pil_img.save('data/dst/lena_bgr_pillow.jpg') 8, tetapi di Bantal urutan warna mengasumsikan RGB (merah, hijau, biru)
Oleh karena itu, jika ndarray_ dari gambar yang dibaca oleh OpenCV imread() diubah menjadi objek pil_img = Image.fromarray(im_cv) pil_img.save('data/dst/lena_bgr_pillow.jpg') 7 dan disimpan, gambar dengan warna yang salah disimpan
pil_img = Image.fromarray(im_cv) pil_img.save('data/dst/lena_bgr_pillow.jpg')
sumber.
Jika Anda ingin mengonversi objek ndarray dan pil_img = Image.fromarray(im_cv) pil_img.save('data/dst/lena_bgr_pillow.jpg') 7 untuk menggunakan fungsi Bantal dan OpenCV, Anda perlu mengonversi BGR dan RGB
Konversikan BGR dan RGB dengan fungsi OpenCV cvtColor()
Berbagai ruang warna seperti RGB, BGR, HSV dapat saling dikonversi menggunakan fungsi OpenCV cvtColor()
dst = cv2.cvtColor(src, code) _
Lihat dokumen berikut untuk nilai yang ditentukan untuk parameter dst = cv2.cvtColor(src, code) 6
Ketika dst = cv2.cvtColor(src, code) 6 adalah dst = cv2.cvtColor(src, code) 8, BGR dikonversi menjadi RGB
Ketika dikonversi ke RGB, itu akan disimpan sebagai gambar yang benar meskipun disimpan setelah diubah menjadi objek pil_img = Image.fromarray(im_cv) pil_img.save('data/dst/lena_bgr_pillow.jpg') 7
im_rgb = cv2.cvtColor(im_cv, cv2.COLOR_BGR2RGB) Image.fromarray(im_rgb).save('data/dst/lena_rgb_pillow.jpg')
sumber.
Ketika dikonversi ke RGB dan disimpan dengan OpenCV pil_img = Image.fromarray(im_cv) pil_img.save('data/dst/lena_bgr_pillow.jpg') 5, itu akan menjadi gambar warna yang salah
cv2.imwrite('data/dst/lena_rgb_cv.jpg', im_rgb)
sumber.
Parameter dst = cv2.cvtColor(src, code) _6 saat mengubah dari RGB ke BGR adalah im_rgb = cv2.cvtColor(im_cv, cv2.COLOR_BGR2RGB) Image.fromarray(im_rgb).save('data/dst/lena_rgb_pillow.jpg') 2. Gunakan ini saat membaca file gambar sebagai pil_img = Image.fromarray(im_cv) pil_img.save('data/dst/lena_bgr_pillow.jpg') 7, ubah menjadi ndarray, dan simpan menggunakan OpenCV pil_img = Image.fromarray(im_cv) pil_img.save('data/dst/lena_bgr_pillow.jpg') 5