使用Matplotlib將圖片保存為.tiff格式
Matplotlib將圖片保存為.tiff格式
sci論文為防止圖片失真,最好提交 tiff 格式(位圖)或者其它類型的矢量圖。
因?yàn)榻?jīng)常用matplotlib繪圖,于是可以按照以下方法將圖片保存為 tiff 格式,之后使用PS進(jìn)行壓縮。
主要用到了io和PIL模塊,流程是先保存為png格式,在后再加載,通過(guò)PIL保存為 tiff 格式。
舉個(gè)簡(jiǎn)單的例子
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()示例結(jié)果:

python圖像處理之tiff文件的保存與解析
tiff文件是一種常用的圖像文件格式,支持將多幅圖像保存到一個(gè)文件中,極大得方便了圖像的保存和處理。
python中支持tiff文件處理的是libtiff模塊中的TIFF類(libtiff下載鏈接https://pypi.python.org/pypi/libtiff/)。
這里主要介紹tiff文件的解析和保存,
具體見(jiàn)如下代碼:
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:要保存的圖像數(shù)目 def image_array_to_tiff(image_dir, file_name, image_type, image_num): ? ? out_tiff = TIFF.open(file_name, mode = 'w') ?? ?#這里假定圖像名按序號(hào)排列 ? ? for i in range(0, image_num): ? ? ? ? image_name = image_dir + str(i) + image_type ? ? ? ? image_array = Image.open(image_name) ?? ??? ?#縮放成統(tǒng)一尺寸 ? ? ? ? img = image_array.resize((480, 480), Image.ANTIALIAS) ? ? ? ? out_tiff.write_image(img, compression = None, write_rgb = True) ? ? out_tiff.close() ? ? return?
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python判斷某個(gè)用戶對(duì)某個(gè)文件的權(quán)限
這篇文章主要為大家詳細(xì)介紹了Python如何判斷某個(gè)用戶對(duì)某個(gè)文件的權(quán)限,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-10-10
Python:合并兩個(gè)numpy矩陣的實(shí)現(xiàn)
今天小編就為大家分享一篇Python:合并兩個(gè)numpy矩陣的實(shí)現(xiàn),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-12-12
在Windows中安裝Spire.XLS?for?Python的操作指南
Spire.XLS?for?Python?是一款專業(yè)的?Python?Excel?庫(kù),可用于在各種?Python?應(yīng)用程序中讀取、創(chuàng)建、編輯和轉(zhuǎn)換?Excel?(.xls?&?.xlsx)?文件,本文將介紹如何在?Windows?中安裝?Spire.XLS?for?Python,需要的朋友可以參考下2025-02-02
Python進(jìn)階之import導(dǎo)入機(jī)制原理詳解
在Python中,一個(gè).py文件代表一個(gè)Module。在Module中可以是任何的符合Python文件格式的Python腳本。了解Module導(dǎo)入機(jī)制大有用處??旄S小編一起學(xué)習(xí)一下吧2022-11-11
教你使用python做一個(gè)“罰點(diǎn)球”小游戲
這篇文章主要介紹了用python做一個(gè)“罰點(diǎn)球”小游戲,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-06-06

