Convert image from PIL to openCV format Ask Question

Convert image from PIL to openCV format Ask Question

PIL画像を 形式に変換しようとしていますOpenCV。 を使用していますOpenCV 2.4.3。これまでに試したことは次のとおりです。

>>> from PIL import Image
>>> import cv2 as cv
>>> pimg = Image.open('D:\\traffic.jpg')                           #PIL Image
>>> cimg = cv.cv.CreateImageHeader(pimg.size,cv.IPL_DEPTH_8U,3)    #CV Image
>>> cv.cv.SetData(cimg,pimg.tostring())
>>> cv.cv.NamedWindow('cimg')
>>> cv.cv.ShowImage('cimg',cimg)
>>> cv.cv.WaitKey()

しかし、画像が CV 形式に変換されていないようです。ウィンドウには大きな茶色の画像が表示されます。画像を形式PILに変換するときにどこが間違っているのでしょうかCV?

cv.cvまた、関数にアクセスするために入力する必要があるのはなぜですか?

ベストアンサー1

これを使って:

pil_image = PIL.Image.open('Image.jpg').convert('RGB')
open_cv_image = numpy.array(pil_image)
# Convert RGB to BGR
open_cv_image = open_cv_image[:, :, ::-1].copy()

おすすめ記事