图像处理读取与numpy转换

0. 读 存
Image 模块提供了 open() 函数打开图片档案,Image 类则提供了 save() 方法将图片实例保存为图片档案。

save() 函数可以以特定的图片格式保存图片档案。比如 save(‘target.jpg’, ‘JPG’) 将会以 JPG 格式将图片示例保存为 target.jpg。不过,大多数时候也可以省略图片格式。此时,save() 方法会根据文件扩展名来选择相应的图片格式。

我们以一个转换图片格式的脚本进行分析。

import os, sys
from PIL import Image
infile = '1.jpg'
f, e = os.path.splitext(infile)
Image.open(infile).save(outfile)

1. PIL image转换成array

img = np.asarray(image)
img = np.array(image) ?

需要注意的是,如果出现read-only错误,并不是转换的错误,一般是你读取的图片的时候,默认选择的是"r","rb"模式有关。
修正的办法: 手动修改图片的读取状态
img.flags.writeable = True # 将数组改为读写模式

2. array转换成image

img = Image.fromarray(np.uint8(img))
img = Image.fromarray(img.astype('uint8')).convert('RGB')

3.shape
当使用PIL.Image.open()打开图片后,如果要使用img.shape函数,需要先将image形式转换成array数组

4.PIL transpose
transpose有这么几种模式FLIP_LEFT_RIGHT ,FLIP_TOP_BOTTOM ,ROTATE_90 ,ROTATE_180 ,ROTATE_270,TRANSPOSE ,TRANSVERSE
eg. img.transpose(Image.FLIP_LEFT_RIGHT )
example:https://www.cnblogs.com/huipengbo/p/9774747.html

比较:numpy transpose

import numpy as np 
arr=np.arange(16).reshape(2,2,4) 
arr.transpose(2,0,1) 

transpose(2,0,1)就是读入第三维的数作为第一维的值,读入第一维的数作为第二维,读入第二维的数作为第三维,如果再高维,就再按照输入的读取顺序来读

5.Image_name.rotate 图象旋转

nearest neighbour

Image.BILINEAR:linear interpolation

Image.BICUBIC:cubic spline interpolation

Image.LANCZOS:a high-quality downsa

参考:
https://www.twblogs.net/a/5c2245eabd9eee16b4a775c9(常见操作)
https://blog.csdn.net/ybcrazy/article/details/81206411
https://blog.csdn.net/qq_30159015/article/details/80070514
http://www.manongjc.com/article/45803.html

pytorch 模型保存,权重保存,导入,权重的结构,预训练权重导入(模型一致/模型部分一致)
torch.manual_seed(args.seed)https://blog.csdn.net/zh515858237/article/details/83901179

https://blog.csdn.net/GeorgeAI/article/details/81035422
glob

https://www.cnblogs.com/wainiwann/archive/2012/05/09/2493414.html
gdal

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值