Python---图像读写操作(scipy)

这里介绍的仅仅是深度学习中常用的操作:

#read and save images operations
import os
import glob
import random
from scipy import misc
import numpy as np
import time
image_dir = r"C:\Users\Administrator\Desktop";
file_glob = os.path.join(image_dir,"images","training","*.jpg")
file_list = []
#将符合条件的jpg文件路径读取到file_list中去
file_list.extend(glob.glob(file_glob))
print(file_list[::])
print("-----------------------------------------------------------")
#将file_list中的文件路径进行乱序,打乱顺序
random.shuffle(file_list)
print(file_list[::])

def read_andtransform(filename):
    image = misc.imread(filename)
    #将图像尺寸矫正到[100,100]大小
    resize_image = misc.imresize(image,[220,220],interp = "nearest", mode = "RGB")
    #保存图像操作1
    #使用imsave直接保存image对象
    #path = "C:\\Users\\Administrator\\Desktop\\images\\res\\"+str(int(time.time())) + ".jpg"
    #misc.imsave(path, resize_image)

    #将resize_image对象转为数组array返回
    return np.array(resize_image)

#将file_list中所有图像文件读取到数组images中
images = np.array([read_andtransform(filename) for filename in file_list])
#保存images中所有图像
for i in range(len(images)):
    print(images[i].shape)
    #将array保存为image对象的方法:
    #使用misc.toimage方法将array转为image对象
    img = misc.toimage(images[i])
    #使用imsave将image对象保存
    misc.imsave("C:\\Users\\Administrator\\Desktop\\images\\res\\"+str((time.time())) + ".jpg",img)
如果使用Pillow,简单的图像读写操作如下:

import numpy as np
import os
from PIL import Image

#使用open方法打开图像
img = Image.open("C:\\Users\\Administrator\\Desktop\\images\\test.jpg")
#对图像进行简单操作
#定义图像像素反相效果函数
def reverse(x):
    return 255 - x
#使用eval方法对图像进行反相操作
img1 = Image.eval(img,reverse)
#使用save进行保存
img1.save("C:\\Users\\Administrator\\Desktop\\images\\res.jpg")


#获取[x,y]位置像素rgb
x=10
y=10
rgb = img.getpixel((x,y))
#对[x,y]处像素赋值
rgb_new = (100,200,255)
img.putpixel((x,y),rgb_new)
#获取rgb三通道像素数组
channels = img.split()
r,g,b = channels
#将rgb三通道融合成新image
img_new = Image.merge("RGB",(r,g,b))
以上就是使用Scipy和PILLOW库进行简单的图像操作的方法,更详细的介绍请参考官方说明文档。



猜你喜欢

转载自blog.csdn.net/trent1985/article/details/79098264