Ich möchte ein geladenes Bild konvertieren
TestPicture = cv2.imread("flowers.jpg")
Ich möchte einen PIL-Filter ( http://pillow.readthedocs.io/de/4.0.x/reference/ImageFilter.html ) wie im Beispiel https://wellfire.co/learn ausführen/python-image-enhancements/ mit der Variable
TestPicture
aber ich kann es nicht zwischen diesen Typen zurück und viert konvertieren.
Gibt es eine Möglichkeit, diese Konvertierung durchzuführen?
Kann opencv alle im PIL-Paket enthaltenen Bildfilter ausführen?
Ja, OpenCV ist robuster und flexibler und kann die meisten Bildverarbeitungsroutinen ausführen, die draußen verfügbar sind. Wahrscheinlich kann dieser Filter mit OpenCV ausgeführt werden.> Allerdings gibt es möglicherweise keine direkte API dafür.
Soweit es die Konvertierung des Bildformats von OpenCV in PIL betrifft, können Sie Image.fromarray
wie folgt verwenden:
import cv2
import numpy as np
from PIL import Image
img = cv2.imread("path/to/img.png")
# You may need to convert the color.
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
im_pil = Image.fromarray(img)
# For reversing the operation:
im_np = np.asarray(im_pil)
Beachten Sie jedoch, dass OpenCV der BGR
-Konvention und PIL
der RGB
-Farbkonvention folgt. Damit die Konstanten konsistent bleiben, müssen Sie cv2.cvtColor()
vor der Konvertierung verwenden.
Pillow
und OpenCV
verwenden unterschiedliche Bildformate. Sie können also ein Bild nicht einfach in Pillow
lesen und verwenden, um das Bild in OpenCV zu bearbeiten Pillow verwendet das Format RGB
als @ZdaR hervorgehoben und OpenCV
das Format BGR
. Sie benötigen also einen Konverter, um von einem Format in ein anderes zu konvertieren.
PIL
image in OpenCV
zu konvertieren, verwenden Sie:import cv2
import numpy as np
from PIL import Image
pil_image=Image.open("demo2.jpg") # open image using PIL
# use numpy to convert the pil_image into a numpy array
numpy_image=numpy.array(pil_img)
# convert to a openCV2 image, notice the COLOR_RGB2BGR which means that
# the color is converted from RGB to BGR format
opencv_image=cv2.cvtColor(numpy_image, cv2.COLOR_RGB2BGR)
OpenCV
image zu PIL
image zu konvertieren, verwenden Sie:import cv2
import numpy as np
from PIL import Image
opencv_image=cv2.imread("demo2.jpg") # open image using openCV2
# convert from openCV2 to PIL. Notice the COLOR_BGR2RGB which means that
# the color is converted from BGR to RGB
pil_image=cv2.cvtColor(opencv_image, cv2.COLOR_BGR2RGB)