Je veux faire un traitement détaillé avec OpenCV, mais je veux faire une entrée / sortie de fichier avec Pillow! Ou plutôt, si vous l'enregistrez avec OpenCV, ce sera un fichier ... Il y a des moments.
C'est pourquoi j'ai écrit un échantillon dans Pillow-> OpenCV et OpenCV-> Pillow.
from PIL import Image
import cv2
import numpy as np
#Charger des images avec des données PIL
im = Image.open('t.jpg')
#Convertir en données OpenCV
ocv_im = np.asarray(im)
#Économisez avec OpenCV
cv2.imwrite("t_ocv.jpg ",ocv_im)
#Convertir en données PIL
pil_im = Image.fromarray(ocv_im)
#Enregistrer en tant que PIL
pil_im.save("t_pil.jpg ")
Le fichier qui est sorti.
t_ocv.jpg
t_pil.jpg
Pour une raison quelconque, t_ocv.jpg est bleu, qui est aussi proche du bleu que possible.
Quand je l'ai recherché, OpenCV a dit que la couleur était BGR au lieu de RVB.
Donc, si vous convertissez ocv_im en RVB, il n'y a pas de problème.
cv2.imwrite("t_ocv.jpg ",ocv_im)
↓
cv2.imwrite("t_ocv.jpg ",ocv_im[:, :, ::-1].copy())
Solution. c'est tout.
Recommended Posts