Pytorch基础:数据读取与预处理——图像读取与存储
1.读取图片
- 图像库 opencv-python、imageio、PIL 等都具有图像读取的功能。
(base) PS C:\Users\阳> conda activate yang
(yang) PS C:\Users\阳> python
Python 3.11.5 | packaged by Anaconda, Inc. | (main, Sep 11 2023, 13:26:23) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import torch
>>>
>>> import PIL
>>> from PIL import Image
>>>
>>> # 读取本地图片
>>> image=Image.open("D:\\阳\\工作\\1.机器视觉\\2D视觉\\VisionPro学习\\动态卡尺自动路径搜索\\1.jpg")
>>> print("image width:",image.width)
image width: 1000
>>> print("image width:",image.height)
image width: 750
>>>
>>> image=image.resize(size=(256,256),resample=PIL.Image.NEAREST)
>>> print("image width:",image.width)
image width: 256
>>> print("image width:",image.height)
image width: 256
>>>
>>> import numpy as np
>>>
>>> line=np.linspace(0,255,256)
>>> line=np.expand_dims(line,0)
>>> image=np.tile(line,(256,1))
>>> image=image.astype(np.uint8)
# 从numpy创建Image对象
>>> image=Image.fromarray(image)
# 保存图像
>>> image.save("D:\\孙明阳\\工作\\1.机器视觉\\2D视觉\\VisionPro学习\\动态卡尺自动路径搜索\\3.jpg")
2. 使用 matplotlib 库显示和保存图像
- 如果电脑没有安装matplotlib,则需要执行以下命令:
conda activate yang
conda install -c conda-forge matplotlib
(base) PS C:\Users\孙明阳> conda activate yang
(yang) PS C:\Users\孙明阳> python
Python 3.11.5 | packaged by Anaconda, Inc. | (main, Sep 11 2023, 13:26:23) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>
>>> import numpy as np
>>> from PIL import Image
>>> import matplotlib.pyplot as plt
>>>
>>> rows=2
>>> cols=2
>>> for i in range(rows*cols):
... plt.subplot(rows,cols,i+1)
... plt.title("Figure "+ str(i))
... plt.imshow(image)
>>> plt.savefig("fareguan.jpg",dpi=500,bbox_inches='tight')
>>> plt.show()
>>>
- 需要注意的是 plt.savefig 是不支持bmp 格式的。它支持的格式有 eps, jpeg, jpg, pdf, pgf, png, ps, raw, rgba, svg, svgz, tif, tiff, webp
- 但是 Image.open 可以打开 bmp 文件。