使用Matplotlib将图片保存为.tiff格式
Matplotlib将图片保存为.tiff格式
sci论文为防止图片失真,最好提交 tiff 格式(位图)或者其它类型的矢量图。
因为经常用matplotlib绘图,于是可以按照以下方法将图片保存为 tiff 格式,之后使用PS进行压缩。
主要用到了io和PIL模块,流程是先保存为png格式,在后再加载,通过PIL保存为 tiff 格式。
举个简单的例子
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.lines import Line2D
import io
from PIL import Image
custom_lines = [Line2D([0], [0], color=cmap(0.), lw=4),
Line2D([0], [0], color=cmap(.5), lw=4),
Line2D([0], [0], color=cmap(1.), lw=4)]
N = 10
data = [np.logspace(0, 1, 100) + np.random.randn(100) + ii for ii in range(N)]
data = np.array(data).T
fig, ax = plt.subplots()
lines = ax.plot(data)
ax.legend(custom_lines, ['Cold', 'Medium', 'Hot'])
# Save the image in memory in PNG format
png1 = io.BytesIO()
plt.savefig(png1, format="png", dpi=500, pad_inches = .1, bbox_inches = 'tight')
# Load this image into PIL
png2 = Image.open(png1)
# Save as TIFF
png2.save("ap_qt_ad.tiff")
png1.close()示例结果:

python图像处理之tiff文件的保存与解析
tiff文件是一种常用的图像文件格式,支持将多幅图像保存到一个文件中,极大得方便了图像的保存和处理。
python中支持tiff文件处理的是libtiff模块中的TIFF类(libtiff下载链接https://pypi.python.org/pypi/libtiff/)。
这里主要介绍tiff文件的解析和保存,
具体见如下代码:
from libtiff import TIFF from scipy import misc ##tiff文件解析成图像序列 ##tiff_image_name: tiff文件名; ##out_folder:保存图像序列的文件夹 ##out_type:保存图像的类型,如.jpg、.png、.bmp等 def tiff_to_image_array(tiff_image_name, out_folder, out_type): tif = TIFF.open(tiff_image_name, mode = "r") idx = 0 for im in list(tif.iter_images()): # im_name = out_folder + str(idx) + out_type misc.imsave(im_name, im) print im_name, 'successfully saved!!!' idx = idx + 1 return ##图像序列保存成tiff文件 ##image_dir:图像序列所在文件夹 ##file_name:要保存的tiff文件名 ##image_type:图像序列的类型 ##image_num:要保存的图像数目 def image_array_to_tiff(image_dir, file_name, image_type, image_num): out_tiff = TIFF.open(file_name, mode = 'w') #这里假定图像名按序号排列 for i in range(0, image_num): image_name = image_dir + str(i) + image_type image_array = Image.open(image_name) #缩放成统一尺寸 img = image_array.resize((480, 480), Image.ANTIALIAS) out_tiff.write_image(img, compression = None, write_rgb = True) out_tiff.close() return
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
Python的“二维”字典 (two-dimension dictionary)定义与实现方法
这篇文章主要介绍了Python的“二维”字典 (two-dimension dictionary)定义与实现方法,结合实例形式分析了Python模拟实现类似二维数组形式的二维字典功能,需要的朋友可以参考下2016-04-04
详解python函数传参传递dict/list/set等类型的问题
这篇文章主要介绍了详解python函数传参传递dict/list/set等类型的问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2021-04-04


最新评论