python保存图片函数 python生成的图片怎么保存-成都快上网建站

python保存图片函数 python生成的图片怎么保存

python读取保存多帧图片数量少了

cv2.imshow("left", img_left)

网站建设哪家好,找创新互联!专注于网页设计、网站建设、微信开发、微信平台小程序开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了城固免费建站欢迎大家使用!

filename3=str(number)+'n3'+'.jpg' #打印第number张图片+增值方式+保存类型

cv2.imwrite(savedpath + filename3, 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]))

# 保存图片,需要保存上述的哪一图片,就在cv2.imwrite()中,将哪一图片名放入。

# filename='xxx' +'.jpeg'

# cv2.imwrite(savedpath + filename, img_left)

# 显示图形

cv2.imshow("down", img_down)

filename0=str(number)+'n0'+'.jpg'

cv2.imwrite(savedpath + filename0, img_down)

cv2.imshow("up", img_up)

filename1=str(number)+'n1'+'.jpg'

cv2.imwrite(savedpath + filename1, img_up)

cv2.imshow("right", img_right)

filename2=str(number)+'n2'+'.jpg'

cv2.imwrite(savedpath + filename2, img_right)

cv2.imshow("left", img_left)

filename3=str(number)+'n3'+'.jpg'

cv2.imwrite(savedpath + filename3, img_left)

# 图像缩放

def img_scale(image):

result = cv2.resize(image, (224, 224))

cv2.imshow("scale", result)

filename=str(number)+'n5'+'.jpg'

cv2.imwrite(savedpath + filename, 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(savedpath + filename1, horizontally)

cv2.imshow("Vertically", vertically)

filename2=str(number)+'n7'+'.jpg'

cv2.imwrite(savedpath + filename2, vertically)

cv2.imshow("Horizontally Vertically", hv)

filename3=str(number)+'n8'+'.jpg'

cv2.imwrite(savedpath + filename3, hv)

# 图像旋转

def img_rotation(image):

# 原图的高、宽 以及通道数

rows, cols, channel = image.shape

# 绕图像的中心旋转

# 参数:旋转中心 旋转度数 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(savedpath + filename1, 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(savedpath + filename2, 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(savedpath + filename3, 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 = image + noise

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(savedpath + filename3, 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(savedpath + filename3, 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 = i + 1

i = number

print("######")

print("打印到第",i,"张图片")

src = cv2.imread(path + item)

img_translation(src)

img_scale(src)

img_flip(src)

img_rotation(src)

img_noise(src)

img_brightness(src)

cv2.waitKey(0)

cv2.destroyAllWindows()

代码较为繁琐,有空之后进行优化

输出结果

python画出来的爱心怎么保存下来

使用matplotlib画图保存方法:

首先,import头文件如下:

import matplotlib

matplotlib.use('Agg')

import matplotlib.pyplot as plt

from matplotlib.pyplot

import plot,savefig

画图:fig, ax = plt.subplots(figsize=(12, 12))

ax.imshow(im, aspect='equal') #im表示显示的图像

保存图片:savefig("D:/1.jpg")

展示图片:plt.show()

python:PIL图像处理

PIL (Python Imaging Library)

Python图像处理库,该库支持多种文件格式,提供强大的图像处理功能。

PIL中最重要的类是Image类,该类在Image模块中定义。

从文件加载图像:

如果成功,这个函数返回一个Image对象。现在你可以使用该对象的属性来探索文件的内容。

format 属性指定了图像文件的格式,如果图像不是从文件中加载的则为 None 。

size 属性是一个2个元素的元组,包含图像宽度和高度(像素)。

mode 属性定义了像素格式,常用的像素格式为:“L” (luminance) - 灰度图, “RGB” , “CMYK”。

如果文件打开失败, 将抛出IOError异常。

一旦你拥有一个Image类的实例,你就可以用该类定义的方法操作图像。比如:显示

( show() 的标准实现不是很有效率,因为它将图像保存到一个临时文件,然后调用外部工具(比如系统的默认图片查看软件)显示图像。该函数将是一个非常方便的调试和测试工具。)

接下来的部分展示了该库提供的不同功能。

PIL支持多种图像格式。从磁盘中读取文件,只需使用 Image 模块中的 open 函数。不需要提供文件的图像格式。PIL库将根据文件内容自动检测。

如果要保存到文件,使用 Image 模块中的 save 函数。当保存文件时,文件名很重要,除非指定格式,否则PIL库将根据文件的扩展名来决定使用哪种格式保存。

** 转换文件到JPEG **

save 函数的第二个参数可以指定使用的文件格式。如果文件名中使用了一个非标准的扩展名,则必须通过第二个参数来指定文件格式。

** 创建JPEG缩略图 **

需要注意的是,PIL只有在需要的时候才加载像素数据。当你打开一个文件时,PIL只是读取文件头获得文件格式、图像模式、图像大小等属性,而像素数据只有在需要的时候才会加载。

这意味着打开一个图像文件是一个非常快的操作,不会受文件大小和压缩算法类型的影响。

** 获得图像信息 **

Image 类提供了某些方法,可以操作图像的子区域。提取图像的某个子区域,使用 crop() 函数。

** 复制图像的子区域 **

定义区域使用一个包含4个元素的元组,(left, upper, right, lower)。坐标原点位于左上角。上面的例子提取的子区域包含300x300个像素。

该区域可以做接下来的处理然后再粘贴回去。

** 处理子区域然后粘贴回去 **

当往回粘贴时,区域的大小必须和参数匹配。另外区域不能超出图像的边界。然而原图像和区域的颜色模式无需匹配。区域会自动转换。

** 滚动图像 **

paste() 函数有个可选参数,接受一个掩码图像。掩码中255表示指定位置为不透明,0表示粘贴的图像完全透明,中间的值表示不同级别的透明度。

PIL允许分别操作多通道图像的每个通道,比如RGB图像。 split() 函数创建一个图像集合,每个图像包含一个通道。 merge() 函数接受一个颜色模式和一个图像元组,然后将它们合并为一个新的图像。接下来的例子交换了一个RGB图像的三个通道。

** 分离和合并图像通道 **

对于单通道图像, split() 函数返回图像本身。如果想处理各个颜色通道,你可能需要先将图像转为RGB模式。

resize() 函数接受一个元组,指定图像的新大小。

rotate() 函数接受一个角度值,逆时针旋转。

** 基本几何变换 **

图像旋转90度也可以使用 transpose() 函数。 transpose() 函数也可以水平或垂直翻转图像。

** transpose **

transpose() 和 rotate() 函数在性能和结果上没有区别。

更通用的图像变换函数为 transform() 。

PIL可以转换图像的像素模式。

** 转换颜色模式 **

PIL库支持从其他模式转为“L”或“RGB”模式,其他模式之间转换,则需要使用一个中间图像,通常是“RGB”图像。

ImageFilter 模块包含多个预定义的图像增强过滤器用于 filter() 函数。

** 应用过滤器 **

point() 函数用于操作图像的像素值。该函数通常需要传入一个函数对象,用于操作图像的每个像素:

** 应用点操作 **

使用以上技术可以快速地对图像像素应用任何简单的表达式。可以结合 point() 函数和 paste 函数修改图像。

** 处理图像的各个通道 **

注意用于创建掩码图像的语法:

Python计算逻辑表达式采用短路方式,即:如果and运算符左侧为false,就不再计算and右侧的表达式,而且返回结果是表达式的结果。比如 a and b 如果a为false则返回a,如果a为true则返回b,详见Python语法。

对于更多高级的图像增强功能,可以使用 ImageEnhance 模块中的类。

可以调整图像对比度、亮度、色彩平衡、锐度等。

** 增强图像 **

PIL库包含对图像序列(动画格式)的基本支持。支持的序列格式包括 FLI/FLC 、 GIF 和一些实验性的格式。 TIFF 文件也可以包含多个帧。

当打开一个序列文件时,PIL库自动加载第一帧。你可以使用 seek() 函数 tell() 函数在不同帧之间移动。

** 读取序列 **

如例子中展示的,当序列到达结尾时,将抛出EOFError异常。

注意当前版本的库中多数底层驱动只允许seek到下一帧。如果想回到前面的帧,只能重新打开图像。

以下迭代器类允许在for语句中循环遍历序列:

** 一个序列迭代器类 **

PIL库包含一些函数用于将图像、文本打印到Postscript打印机。以下是一个简单的例子。

** 打印到Postscript **

如前所述,可以使用 open() 函数打开图像文件,通常传入一个文件名作为参数:

如果打开成功,返回一个Image对象,否则抛出IOError异常。

也可以使用一个file-like object代替文件名(暂可以理解为文件句柄)。该对象必须实现read,seek,tell函数,必须以二进制模式打开。

** 从文件句柄打开图像 **

如果从字符串数据中读取图像,使用StringIO类:

** 从字符串中读取 **

如果图像文件内嵌在一个大文件里,比如 tar 文件中。可以使用ContainerIO或TarIO模块来访问。

** 从tar文档中读取 **

** 该小节不太理解,请参考原文 **

有些解码器允许当读取文件时操作图像。通常用于在创建缩略图时加速解码(当速度比质量重要时)和输出一个灰度图到激光打印机时。

draft() 函数。

** Reading in draft mode **

输出类似以下内容:

注意结果图像可能不会和请求的模式和大小匹配。如果要确保图像不大于指定的大小,请使用 thumbnail 函数。

Python2.7 教程 PIL

Python 之 使用 PIL 库做图像处理

来自

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如何保存img文件

python保存img文件有两种方法:

1、使用matplotlib模块的“matplotlib.image.imsave()”函数可以保存图片

示例代码如下:

2、使用opencv模块“opencv.imwrite()”函数可以保存图片

更多Python知识,请关注:Python自学网!!

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保存图片函数 python生成的图片怎么保存
当前链接:http://kswjz.com/article/hjohjc.html
扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流