PIL.Image、cv2的img、bytes相互转换
bytes转PIL.Image
from io import BytesIO
from PIL import Image
with open("test_for_classification.png", "wb") as f:
f.write(file)
img = Image.open(BytesIO(file))
img.show()
PIL.Image转bytes
from PIL import Image
from io import BytesIO
img = Image.open('test.jpg', mode='r')
img_bytes = BytesIO()
img.save(img_bytes, format='JPEG')
img_bytes = img_bytes.getvalue()
cv2转bytes
import cv2
_, img_encode = cv2.imencode('.jpg', img_numpy)
img_bytes = img_encode.tobytes()
bytes转cv2
import numpy as np
import cv2
img_buffer_numpy = np.frombuffer(img_bytes, dtype=np.uint8)
img_numpy = cv2.imdecode(img_buffer_numpy, 1)
PIL 转 cv2
img= Image.open("test.jpg")
img = cv2.cvtColor(np.asarray(img), cv2.COLOR_RGB2BGR)
cv2 转 PIL
img = cv2.imread("test.jpg")
img= Image.fromarray(cv2.cvtColor(img,cv2.COLOR_BGR2RGB))