program tip

PIL에서 openCV 형식으로 이미지 변환

radiobox 2020. 11. 23. 07:58
반응형

PIL에서 openCV 형식으로 이미지 변환


이미지 PILOpenCV형식으로 변환하려고 합니다. 나는 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 형식으로 변환되지 않는다고 생각합니다. 창은 큰 갈색 이미지를 보여줍니다. 이미지 PILCV형식으로 변환 할 때 어디에서 문제가 발생 합니까?

또한 cv.cv함수에 액세스 하기 위해 입력해야하는 이유는 무엇입니까?


이것을 사용하십시오 :

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() 

이것은 내가 찾을 수있는 가장 짧은 버전으로, 추가 변환을 저장 / 숨 깁니다.

pil_image = PIL.Image.open('image.jpg')
opencvImage = cv2.cvtColor(numpy.array(pil_image), cv2.COLOR_RGB2BGR)

URL에서 파일을 읽는 경우 :

import cStringIO
import urllib
file = cStringIO.StringIO(urllib.urlopen(r'http://stackoverflow.com/a_nice_image.jpg').read())
pil_image = PIL.Image.open(file)
opencvImage = cv2.cvtColor(numpy.array(pil_image), cv2.COLOR_RGB2BGR)

참고 URL : https://stackoverflow.com/questions/14134892/convert-image-from-pil-to-opencv-format

반응형