python显示图片的方式(OpenCV,PIL,matplotlib)

这一篇博客介绍几个python处理图像的常见库,介绍基础的存取和显示,旨在帮助大家更好的选择合适的库进行图像处理,或者结合pytorch等深度学习框架进行图像的读取与显示

1.OpenCV

OpenCV是一个计算机视觉和软件库,由C++编写而成,常用python接口

CV(computer vision)意为计算机视觉,OpenCV经常用在计算机视觉领域,如目标检测中结合深度学习使用,封装了许多机器学习和深度学习算法,同时它可以调取摄像头

下载opencv:

# 需要先安装numpy和matplotlib
pip install opencv_python

读入图片:

注意opencv读取默认是BGR通道,这里转换成RGB通道 ,以适应其他库的习惯

import cv2
import matplotlib.pyplot as plt # 用于在jupyter中绘图

img_bgr = cv2.imread("images/Tokyo.png") # BGR通道
img_rgb = img_bgr[:,:,::-1] # python中::-1代表反转,也就是将BGR通道变成RGB通道

img_rgb

可以看到,OpenCV是以数组形式读取图片 

在窗口显示:

cv2.imshow("myImage",img_bgr)
cv2.waitKey(0) # 等待用户按键触发,设置为0即无限制等待||显示视频时表示帧间延迟(一定要>0)

在jupyter显示:

dpi:每英寸内的像素点数

# 显示BGR和RGB的区别
# plt.figure(dpi=90) #dpi越大显示越大
plt.imshow(img_bgr)
plt.show() # 显示BGR通道

# plt.figure(dpi=90)
plt.imshow(img_rgb)
plt.show() # 显示RGB通道

  

# 图片保存
cv2.imwrite("data/myImage.png",img)

 2.PIL

PIL全称Pillow,是基础图像处理库,主要有两个功能:

图像归档:创建略缩图,生成预览图,批量处理

图像处理:调整大小,裁剪图像,像素点处理,添加滤镜,颜色处理

from PIL import Image
import matplotlib.pyplot as plt

img = Image.open("images/Tokyo.png")
print(type(img))

# 图片显示
# img.show() # 在窗口显示
# plt.imshow(img) # 在jupyter显示

# 图片保存
img.save("data/myImage.png")

 可以看到,PIL将图片作为一个类型

<class 'PIL.PngImagePlugin.PngImageFile'>

3.matplotlib

import matplotlib.pyplot as plt

img = plt.imread("images/Tokyo.png")
print(type(plt))

plt.imshow(img)
plt.savefig("data/myImage1.png")

  可以看到,matplotlib也将图片作为一个类型

<class 'module'>

4.其他

上面的比较常用另外,还有Scipy(主要用于数学和科学计算),Pgmagick(图像处理)等库可供选择,有的深度框架也自己定义了图像存取模块,如keras的keras.preprocessing.image

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

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

(0)
心中带点小风骚的头像心中带点小风骚普通用户
上一篇 2023年4月6日
下一篇 2023年4月6日

相关推荐