cv2.imread() 和 PIL.Image.open()的区别,联系,和互相转换

Mark 一下在这里和这里发现的简洁回答~

Opencv

image = cv2.imread(image_path, 1)
image_cv = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)

Pillow

image_from_pil = Image.open(image_path).convert("RGB")
image_pillow = numpy.array(image_from_pil)

此时,image_npimage_cv 等价。
注意,当文件为 JPEG 格式时,二者可能由于libjpeg的不同存在一些不同因。


cv2 => PIL.Image

import cv2
from PIL import Image
import numpy
 
img = cv2.imread("plane.jpg") # opencv打开的是BRG
cv2.imshow("OpenCV",img)
image = Image.fromarray(cv2.cvtColor(img,cv2.COLOR_BGR2RGB))
image.show()
cv2.waitKey()

PIL.Image => cv2

import cv2
from PIL import Image
import numpy
 
path = 'xxx.jpeg'

img = Image.open(path).convert("RGB")#.convert("RGB")可不要,默认打开就是RGB
img.show()

#img = cv2.cvtColor(numpy.asarray(image),cv2.COLOR_RGB2BGR)
img = cv2.cvtColor(np.array(img),cv2.COLOR_RGB2BGR)
cv2.imshow("OpenCV",img)

你可能感兴趣的:(Install:,Packages,&,Tools,人工智能,python,pillow)