python画图保存png图片_Python将numpy矩阵保存为PNG图片
我通过PIL和numpy处理的图片现在是一个numpy array,我希望它存回png格式,于是查到了scipy.misc.toimage可以做到,但是这里面有一些需要注意的地方。
直接上我的code(包含处理过程,image_pooling()的最后一句是存图):
#-*-coding:utf-8-*-
import os
import random
import shutil
from PIL import Image
import numpy as np
from collections import Counter
from scipy import misc
def image_pooling( ori_dir='gtFine/train/', goal_dir='gtFine_pool/train/' ):
sub_dirs_ori = [f1 for f1 in os.listdir(ori_dir) if os.path.isdir(os.path.abspath(os.path.join(ori_dir,f1)))]
# print sub_dirs_ori
# img_index = 0
# train_files = []
# assert len(sub_dirs_data) == len(sub_dirs_labels)
for sub_dir in sub_dirs_ori:
ori_complete_dir = os.path.join(ori_dir, sub_dir)
goal_complete_dir = os.path.join(goal_dir, sub_dir)
os.mkdir(goal_complete_dir)
for f in os.listdir(ori_complete_dir):
ori_path = os.path.abspath(os.path.join(ori_complete_dir, f))
print "original_path is ", ori_path
goal_path = os.path.abspath(os.path.join(goal_complete_dir, f))
print "goal_path is ", goal_path
if os.path.isfile(ori_path) and 'labelIds' in f:
# shutil.copyfile(ori_path, goal_path)
img = np.array(Image.open(ori_path))
print img.shape
img_goal = np.zeros((img.shape[0]//8, img.shape[1]//8))
pool_h = img.shape[0]//8
pool_w = img.shape[1]//8
for i in range(pool_h):
for j in range(pool_w):
img_goal[i,j] = int( Counter((img[8*i:8*(i+1),8*j:8*(j+1)].flatten())).most_common(1)[0][0] )
# print img_goal
misc.toimage(img_goal, cmin=0, cmax=255).save(goal_path)
if __name__ == '__main__':
image_pooling()
需要注意的是看下misc.toimage文档说明和source code,如果我们不给cmin和cmax参数的话,保存的时候会把图像按照矩阵中的最大最小值在0-255区间进行normalization。这不是我想要的结果,所以要给出cmin和cmax,来确保不会这样做。看misc.toimage源码:
def toimage(arr, high=255, low=0, cmin=None, cmax=None, pal=None,
mode=None, channel_axis=None):
........................
data = (data*1.0 - cmin)*(high - low)/(cmax - cmin) + low
.........................
可以看到如果默认high=255, low=0的话,那cmax和cmin也需要分别等于255和0,这一步的处理才不会影响我们把numpy矩阵完好的存成png图像。
python画图保存png图片_Python将numpy矩阵保存为PNG图片相关推荐
- python矩阵变成图片_Python将numpy矩阵保存为PNG图片
我通过PIL和numpy处理的图片现在是一个numpy array,我希望它存回png格式,于是查到了scipy.misc.toimage可以做到,但是这里面有一些需要注意的地方. 直接上我的code ...
- 怎么看python环境变量配置是否好了验证图片_python 的 tesserocr 模块安装与获取图片验证码...
OCR,即Optical Character Recognition,光学字符识别,是指通过扫描字符,然后通过其形状将其翻译成电子文本的过程.对于图形验证码来说,它们都是一些不规则的字符,这些字符确实 ...
- python读取word图片_Python中如何读取Word中的图片
Python能够快速的编写.调试,用来提取各类软件中的图片再好不过了.今天小编就为大家带来在Python中提取Word图片的方法. 方法 需要批量的修改文件后缀名,并且解压之后将图片拷贝到需要存放的地 ...
- python 画图代码及解释_python画图(图例、网格、注释) - v2
每件事情总有两面性,当我们看到不太好的一面时,一定要想着去寻找一下好的一面.就比如,原本计划好的五一行程被打乱之后,我脑子里便诞生了一个"伟大"的想法,立马买好了乳胶漆打算利用闲暇 ...
- python时间函数详解_Python:Numpy库基础分析——详解datetime类型的处理
原标题:Python:Numpy库基础分析--详解datetime类型的处理 Python:Numpy库基础分析--详解datetime类型的处理 关于时间的处理,Python中自带的处理时间的模块就 ...
- python画图怎样写文字_python画图系列之个性化显示x轴区段文字的实例
今天在写一个研究生创新项目申报书时涉及到一个python画图问题,对于在x轴各个区段显示自定义的字符串有些疑问,特此记录. 界面如下所示: 代码如下所示: import matplotlib.pypl ...
- python爬图代码实例_Python爬虫爬取煎蛋网图片代码实例
这篇文章主要介绍了Python爬虫爬取煎蛋网图片代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 今天,试着爬取了煎蛋网的图片. 用到的包: ...
- c++读出像素矩阵_Python传numpy矩阵调c++(求3D图像连通区域)
Python有很多种调c++的方法,有的复杂有的简单,有时使用的时候反而不知道到底该用哪一种比较好,其实没有最好的方法,只有适合不适合自己.本文从我所遇到的问题说起,然后讲述另一种比较简单的pytho ...
- python 画图设置横纵坐标_Python输出高质量论文图片
科研至今十年有余,一直使用MATLAB作图,但是一直觉得MATLAB的线条图的不够优美,特别是线型的短板极大的限制了作图的灵活性. MATLAB只有默认的四种线型,而且输出效果比较呆板.最近在一篇文章 ...
最新文章
- AE 先进的视频画面 快速释放 慢动作
- 互联网日报 | 4月20日 星期二 | 华为正式宣布卖车;携程在港交所挂牌上市;广州期货交易所正式揭牌...
- python培训一般多久_零基础学python需要多久
- linux 下把整数转化为字符串
- 【毕业设计】php+mysql社区交流系统(毕业论文+封面目录+系统+说明书)
- Unity3D研究院之Prefab里面的Prefab关联问题
- 基恩士PLC实例笔记①--立项及编程
- zemax仿真半导体激光器
- 中控智慧指纹采集器live20R用C二次开发,导入开发包时报错“HANDLE未定义”之类的错误
- matlab无限长一维原子链,优·王淑华固体物理答案第三章.ppt
- noip2005 篝火晚会
- Biopython -- Bio.Entrez module
- unity shader 热扭曲 (屏幕后处理)
- 中央财经大学c语言试题答案,中央财经大学C语言题
- Java编写图像浏览器_浏览器下载图像(JAVA代码)
- 通过ssh访问docker容器的办法 亲测可行
- [PCIe]PCIe设备在一个系统中是如何发现与访问的
- Docker常用命令使用详解(docker help、version、info、images)(一)
- 【毕业设计】基于单片机无线充电的4轴飞行器 -物联网 嵌入式 stm32
- linux命令之打包和解压
热门文章
- 牛顿法 拟牛顿法DFP BFGS L-BFGS的理解
- 免费合同管理软件有哪个好用?有哪些功能?
- 2021-11-20 任务一:健康评估功能的展示
- 现实世界的Windows Azure:访问海军研究局破坏性业务技术总监Dano DeBrou
- Window mobile 软键盘输入法设置
- H3C交换机升级系统镜像
- 【练一下2】汽车领域多语种迁移学习挑战赛[2022.7.8]
- 京东java面试题目
- filebeat7.7.0相关详细配置预览- processors - script
- 如何在Axure中动态加载图表(Axhub Charts)