将图像从 PIL 转换为 openCV 格式 [英] Convert image from PIL to openCV format

查看:35
本文介绍了将图像从 PIL 转换为 openCV 格式的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试将图像从 PIL 转换为 OpenCV 格式.我正在使用 OpenCV 2.4.3.这是我迄今为止所尝试的.

<预><代码>>>>从 PIL 导入图像>>>将 cv2 导入为 cv>>>pimg = Image.open('D:\traffic.jpg') #PIL Image>>>cimg = cv.cv.CreateImageHeader(pimg.size,cv.IPL_DEPTH_8U,3) #CV 图像>>>cv.cv.SetData(cimg,pimg.tostring())>>>cv.cv.NamedWindow('cimg')>>>cv.cv.ShowImage('cimg',cimg)>>>cv.cv.WaitKey()

但我认为图像没有转换为 CV 格式.窗口向我展示了一个大的棕色图像.将图像从 PIL 转换为 CV 格式时我哪里出错了?

另外,为什么我需要输入 cv.cv 来访问函数?

解决方案

使用这个:

pil_image = PIL.Image.open('Image.jpg').convert('RGB')open_cv_image = numpy.array(pil_image)# 将 RGB 转换为 BGRopen_cv_image = open_cv_image[:, :, ::-1].copy()

I'm trying to convert image from PIL to OpenCV format. I'm using OpenCV 2.4.3. here is what I've attempted till now.

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

But I think the image is not getting converted to CV format. The Window shows me a large brown image. Where am I going wrong in Converting image from PIL to CV format?

Also , why do i need to type cv.cv to access functions?

解决方案

use this:

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 转换为 openCV 格式的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆