使用matplotlib、opencv和PIL读取图片

1.用matplotlib读取图片

import matplotlib.image as mpimg#读取图片
import matplotlib.pyplot as plt #显示图片
%matplotlib inline

image = mpimg.imread('./images/cat.png')
plt.title('Read Image by Matplotlib')
plt.axis('off')# 不显示坐标轴
plt.imshow(image)
plt.show()

使用matplotlib、opencv和PIL读取图片

2.用opencv读取图片

import cv2
import matplotlib.pyplot as plt

image = cv2.imread('./images/cat.png')
plt.title('Read Image by Opencv')
plt.axis('off')
plt.imshow(image)
plt.show()

使用matplotlib、opencv和PIL读取图片

这里发现展示的图片颜色不对,和原图出现了很大的区别。原因是opencv对于 RGB 图片是将其表示为一个多维的NumPy的多维数组,但排列顺序是反序的,也就是BGR 的顺序,因此这里需要对通道顺序进行调整,代码应该这么修改:

plt.imshow(cv2.cvtColor(image, cv2.COLOR_BGR2RGB))

修改代码如下:

import cv2
import matplotlib.pyplot as plt

image = cv2.imread('./images/cat.png')
plt.title('Read Image by Opencv')
plt.axis('off')
plt.imshow(cv2.cvtColor(image, cv2.COLOR_BGR2RGB))
plt.show()

使用matplotlib、opencv和PIL读取图片

3.用PIL读取图片

from PIL import Image
import matplotlib.pyplot as plt

image = Image.open('./images/cat.png')
plt.title('Read Image by PIL')
plt.axis('off')
plt.imshow(image)
plt.show()

使用matplotlib、opencv和PIL读取图片

4.总结

读取图片的方式有3种,分别是matplotlib读取图片、opencv读取图片和PIL读取图片。在读取图片后,统一使用matplotlib工具包显示图片。其中需要注意的是opencv读取图片的情况,读取的图片是BGR通道排序,需要转为RGB通道。

matplotlib的使用:

  1. plt.imshow(image)如果没有显示图片,在其后面加上plt.show()
  2. 绘制多图可用subplot函数。函数原型为subplot(nrows, ncols, index, **kwargs),nrows 代表有多少行, ncols代表有多少列 , index 窗口编号,取值为1至nrows × ncolums
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
import cv2
from PIL import Image

plt.subplot(1, 3, 1)
image = mpimg.imread('./images/cat.png')
plt.title('Matplotlib')
plt.axis('off')
plt.imshow(image)

plt.subplot(1, 3, 2)
image = cv2.imread('./images/cat.png')
plt.title('Opencv')
plt.axis('off')
plt.imshow(cv2.cvtColor(image, cv2.COLOR_BGR2RGB))

plt.subplot(1, 3, 3)
image = Image.open('./images/cat.png')
plt.title('PIL')
plt.axis('off')
plt.imshow(image)

plt.show()

使用matplotlib、opencv和PIL读取图片

版权声明:本文为博主暄踽原创文章,版权归属原作者,如果侵权,请联系我们删除!

原文链接:https://blog.csdn.net/weixin_46003347/article/details/123228638

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(1)
xiaoxingxing的头像xiaoxingxing管理团队
上一篇 2022年3月3日 下午5:58
下一篇 2022年3月3日 下午6:14

相关推荐