from PIL import Image
img = Image.open('./img.png')
img.show()
size : (H, W, C)
mode : ‘RGB’ or ‘L’
can change ‘RGB’ to ‘L’ by convert(’L’)
img = np.array(Image.open('./img.png').convert('L'))
print(img.shape) #(H, W)
format : JEPG
img_np = np.array(img)
(H, W, C)uint8import cv2
import numpy as np
im_cv = cv2.imread('img.jpg')
cv2.imwrite('img_bgr_cv.jpg', im_cv)
cv2.imread() reads ndarray of (H, W, C)
the order of channels are (B, G, R)
pil_img = Image.fromarray(im_cv) #nd array of (H,W,C) where BGR
pil_img.save('data/dst/lena_bgr_pillow.jpg') #put pillow assumes (H,W,C) where RGB
“BGR” to “RGB” with cvtColor(src, [code](<https://docs.opencv.org/3.4.0/d7/d1b/group__imgproc__misc.html#ga4e0972be5de079fed4e3a10e24ef5ef0>))im_rgb = cv2.cvtColor(im_cv, **cv2.COLOR_BGR2RGB**) # change BGR2RGB
Image.fromarray(im_rgb).save('data/dst/lena_rgb_pillow.jpg') # pillow assumes RGB
im_bgr = cv2.imread('data/src/lena.jpg')
im_rgb = im_bgr[:, :, [2, 1, 0]]
Image.fromarray(im_rgb).save('data/dst/lena_swap.jpg')
im_rgb = im_bgr[:, :, ::-1]
Image.fromarray(im_rgb).save('data/dst/lena_swap_2.jpg')