python保存图片函数 python保存图片的代码

python怎么保存生成的图像?要使用python,必须先安装python,一般是2.7版本以上 , 不管是在windows系统,还是linux系统,安装都是非常简单的 。
要使用python进行各种开发 , 就必须安装对应的库 。(推荐学习:Python视频教程)
这和matlab非常相似,只是matlab里面叫工具箱(toolbox),而python里面叫库或包 。安装这些库 , 一般都是使用pip来安装 。
使用python进行数字图片处理,还得安装Pillow包 。虽然python里面自带一个PIL(python images library), 但这个库现在已经停止更新了,所以使用Pillow, 它是由PIL发展而来的 。
图片的打开与显示
虽然使用的是Pillow,但它是由PIL fork而来,因此还是要从PIL中进行import. 使用open()函数来打开图片,使用show()函数来显示图片 。
这种图片显示方式是调用操作系统自带的图片浏览器来打开图片 , 有些时候这种方式不太方便,因此我们也可以使用另上一种方式 , 让程序来绘制图片 。
这种方法虽然复杂了些,但推荐使用这种方法,它使用一个matplotlib的库来绘制图片进行显示 。matplotlib是一个专业绘图的库,相当于matlab中的plot,可以设置多个figure,设置figure的标题,甚至可以使用subplot在一个figure中显示多张图片 。
python中保存图片的方法:
1、使用io模块的imsave(fname,arr)函数来保存生成的图片 。
第一个参数表示保存的路径和名称,第二个参数表示需要保存的数组变量 。
示例:
2、使用plt.savefig()方法保存
python之pyplot 1、 定义x和y,画图展示,保存图片
其中dpi参数指定图像的分辨率为120
2、 优化绘图线条风格
线条颜色color
线条标记marker
线条风格linestyle
3、 坐标轴的控制
坐标轴范围和标题
坐标图上标记
坐标间隔设定
函数plt.xticks()和plt.xticks()用来实现对x轴和y轴坐标间隔(也就是轴记号)的设定 。用法上,函数的输入是两个列表 , 第一个表示取值 , 第二个表示标记 。当然如果你的标记就是取值本身,则第二个列表可以忽略
多图与子图
figure() 函数可以帮助我们同时处理生成多个图,而subplot()函数则用来实现,在一个大图中,出现多个小的子图 。需要注意的是,figure() 中的参数为图片序号,一般是按序增加的,这里面还涉及一个当前图的概念,其中 subplot() 的参数有3个,分别为行数、列数、以及子图序号 。比如 subplot(1,2,1) 表示这是一个1行,2列布局的图(两个子图,在同一行,分居左右),其中,当前处理的子图是第一个图(也就是左图) 。
这样,我们就用一个脚本画了两张图fig.1和fig.2 。其中,fig.1包含了分居左右的两个子图,分别是y1和y3的曲线;fig.2是一张整图,画的是y2曲线 。
如果想要某个子图占据整行或者整列,可以采用下面
第三个图,实际上相当于将前面的两个小的子图看作是一个整图
python读取保存多帧图片数量少了cv2.imshow("left", img_left)
filename3=str(number) 'n3' '.jpg' #打印第number张图片 增值方式 保存类型
cv2.imwrite(savedpathfilename3, img_left)
"""
# 数据增强实现
"""
import cv2
import numpy as np
import os
# 图像平移
def img_translation(image):
# 图像平移 下、上、右、左平移
M = np.float32([[1, 0, 0], [0, 1, 100]])
img_down = cv2.warpAffine(image, M, (image.shape[1], image.shape[0]))
M = np.float32([[1, 0, 0], [0, 1, -100]])
img_up = cv2.warpAffine(image, M, (image.shape[1], image.shape[0]))
M = np.float32([[1, 0, 100], [0, 1, 0]])
img_right = cv2.warpAffine(image, M, (image.shape[1], image.shape[0]))
M = np.float32([[1, 0, -100], [0, 1, 0]])
img_left = cv2.warpAffine(image, M, (image.shape[1], image.shape[0]))
# 保存图片python保存图片函数,需要保存上述的哪一图片,就在cv2.imwrite()中,将哪一图片名放入 。
# filename='xxx''.jpeg'
# cv2.imwrite(savedpathfilename, img_left)
# 显示图形
cv2.imshow("down", img_down)
filename0=str(number) 'n0' '.jpg'
cv2.imwrite(savedpathfilename0, img_down)
cv2.imshow("up", img_up)
filename1=str(number) 'n1' '.jpg'
cv2.imwrite(savedpathfilename1, img_up)
【python保存图片函数 python保存图片的代码】cv2.imshow("right", img_right)
filename2=str(number) 'n2' '.jpg'
cv2.imwrite(savedpathfilename2, img_right)
cv2.imshow("left", img_left)
filename3=str(number) 'n3' '.jpg'
cv2.imwrite(savedpathfilename3, img_left)
# 图像缩放
def img_scale(image):
result = cv2.resize(image, (224, 224))
cv2.imshow("scale", result)
filename=str(number) 'n5' '.jpg'
cv2.imwrite(savedpathfilename, result)
# 图像翻转
def img_flip(image):
# 0以X轴为对称轴翻转,0以Y轴为对称轴翻转, 0X轴Y轴翻转
horizontally = cv2.flip(image, 0)# 水平镜像
vertically = cv2.flip(image, 1)# 垂直镜像
hv = cv2.flip(image, -1)# 水平垂直镜像
# 显示图形
cv2.imshow("Horizontally", horizontally)
filename1=str(number) 'n6' '.jpg'
cv2.imwrite(savedpathfilename1, horizontally)
cv2.imshow("Vertically", vertically)
filename2=str(number) 'n7' '.jpg'
cv2.imwrite(savedpathfilename2, vertically)
cv2.imshow("HorizontallyVertically", hv)
filename3=str(number) 'n8' '.jpg'
cv2.imwrite(savedpathfilename3, hv)
# 图像旋转
def img_rotation(image):
# 原图的高、宽 以及通道数
rows, cols, channel = image.shape
# 绕图像的中心旋转
# 参数python保存图片函数:旋转中心 旋转度数 scale
M = cv2.getRotationMatrix2D((cols / 2, rows / 2), 30, 1)
# 参数:原始图像 旋转参数 元素图像宽高
rotated = cv2.warpAffine(image, M, (cols, rows))
# 显示图像
cv2.imshow("rotated", rotated)
filename1=str(number) 'n9' '.jpg'
cv2.imwrite(savedpathfilename1, rotated)
#选装60度
W = cv2.getRotationMatrix2D((cols / 2, rows / 2), 60, 1)
# 参数:原始图像 旋转参数 元素图像宽高
rotated1 = cv2.warpAffine(image, W, (cols, rows))
cv2.imshow("rotated", rotated)
filename2=str(number) 'n12' '.jpg'
cv2.imwrite(savedpathfilename2, rotated1)
#选装145度
W = cv2.getRotationMatrix2D((cols / 2, rows / 2), 60, 1)
# 参数:原始图像 旋转参数 元素图像宽高
rotated2 = cv2.warpAffine(image, W, (cols, rows))
cv2.imshow("rotated", rotated)
filename3=str(number) 'n13' '.jpg'
cv2.imwrite(savedpathfilename3, rotated2)
# 图像加噪
def img_noise(image, mean=0, var=0.001):
'''
添加高斯噪声
mean : 均值
var : 方差
'''
image = np.array(image / 255, dtype=float)
noise = np.random.normal(mean, var ** 0.5, image.shape)
out = imagenoise
if out.min()0:
low_clip = -1.
else:
low_clip = 0.
out = np.clip(out, low_clip, 1.0)
out = np.uint8(out * 255)
cv2.imshow("noise", out)
filename3=str(number) 'n10' '.jpg'
cv2.imwrite(savedpathfilename3, out)
# 图像亮度调节
def img_brightness(image):
contrast = 1# 对比度
brightness = 100# 亮度
pic_turn = cv2.addWeighted(image, contrast, image, 0, brightness)
# cv2.addWeighted(对象,对比度,对象,对比度)
'''cv2.addWeighted()实现的是图像透明度的改变与图像的叠加'''
cv2.imshow('bright', pic_turn)# 显示图片
filename3=str(number) 'n11' '.jpg'
cv2.imwrite(savedpathfilename3, pic_turn)
if __name__ == '__main__':
i = 0
path = '../Data/'
print(path)
savedpath = './result_new/'
filelist = os.listdir(path)
total_num = len(filelist)
for item in filelist:
number = i1
i = number
print("######")
print("打印到第",i,"张图片")
src = https://www.04ip.com/post/cv2.imread(pathitem)
img_translation(src)
img_scale(src)
img_flip(src)
img_rotation(src)
img_noise(src)
img_brightness(src)
cv2.waitKey(0)
cv2.destroyAllWindows()
代码较为繁琐,有空之后进行优化
输出结果
python保存图片函数的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于python保存图片的代码、python保存图片函数的信息别忘了在本站进行查找喔 。

    推荐阅读