欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

PIL.Image.open()与opecv.imread()(小白进阶之路)

程序员文章站 2024-02-17 13:55:40
...

区别1:plt.imread和PIL.Image.open读入的都是RGB顺序,而cv2.imread读入的是BGR顺序,BGR保存的图像显示为偏蓝色一些;图像转自https://blog.csdn.net/qq_36427732/article/details/81106366

PIL.Image.open()与opecv.imread()(小白进阶之路)

区别2:PIL.Image.open并未读入真是图片数据(矩阵),因此无法直接进行矩阵操作,但是可以直接在Images库中的处理函数进行直接处理;opencv直接读取图像数据,返回的是图像的矩阵,可以直接进行矩阵处理,如获取或者删除部分像素等;

img1 = cv2.imread('xx.bmp', 3)
img2 = Image.open('xx.bmp')
img2 = np.asarray(img2)#转换为矩阵,可以进行相关操作
img2 = Image.fromarray(img2)#转换为PIL处理函数可以处理的图像
#如果用opencv打开图像,可以使用PIL库去处理,需要用 Image.fromarray先转化为PIL可处理的图像
# np.array(image) or np.asarray(img2)与Image.fromarray 实现矩阵于图像的转换
plt.subplot(121),plt.imshow(img1)
plt.subplot(122),plt.imshow(img2)
plt.figure()

 

相关标签: OpenCV PIL