Ars*_*tic 22 python opencv image-processing type-conversion python-imaging-library
我想转换加载的图像
TestPicture = cv2.imread("flowers.jpg")
Run Code Online (Sandbox Code Playgroud)
我想在示例https://wellfire.co/learn/python-image-enhancements上运行PIL过滤器(http://pillow.readthedocs.io/en/4.0.x/reference/ImageFilter.html)/与变量
TestPicture
Run Code Online (Sandbox Code Playgroud)
但是我无法将其转换回来并且在这些类型之间排在第四位.
有没有办法做这个转换?
opencv可以执行PIL包中的所有图像过滤器吗?
Zda*_*daR 36
是的,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)
Run Code Online (Sandbox Code Playgroud)
但是你必须记住,OpenCV遵循BGR约定并PIL遵循RGB颜色约定,所以为了保持一致,你可能需要cv2.cvtColor()在转换之前使用.
Pillow并OpenCV使用不同格式的图像。因此,您不能只是读入图像Pillow并使用它在OpenCV中操纵图像。枕头使用RGB@ZdaR高亮显示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)
Run Code Online (Sandbox Code Playgroud)
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)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
24845 次 |
| 最近记录: |