読み込んだ画像を変換したい
TestPicture = cv2.imread("flowers.jpg")
例のようにPILフィルター( http://pillow.readthedocs.io/en/4.0.x/reference/ImageFilter.html )を実行したい https:// wellfire.co/learn/python-image-enhancements/ 変数
TestPicture
しかし、これらをこれらのタイプ間で変換し直すことはできません。
この変換を行う方法はありますか?
OpencvはPILパッケージに含まれるすべての画像フィルターを実行できますか?
はいOpenCVはより堅牢で柔軟性があり、そこにあるほとんどの画像処理ルーチンを実行できます。したがって、おそらくこのフィルターはOpenCVで実行できます>しかし、そのための単純なAPIがない場合があります。
とにかく、OpenCVからPILへの画像形式の変換に関する限り、次のように_Image.fromarray
_を使用できます。
_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)
_
ただし、OpenCVはBGR
の規則に従い、PIL
はRGB
色の規則に従うため、一貫性を保つためにcv2.cvtColor()
変換前。
Pillow
とOpenCV
では、画像の形式が異なります。したがって、Pillow
の画像を読み取り、それを使用してOpenCVで画像を操作することはできません。 Pillowは、@ ZdaRをハイライト表示したRGB
フォーマットを使用し、OpenCV
は、BGR
フォーマットを使用します。したがって、あるフォーマットから別のフォーマットに変換するためのコンバーターが必要です。
PIL
画像からOpenCV
に変換するには、以下を使用します。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
画像からPIL
画像に変換するには、以下を使用します。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)