我通过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图片相关推荐

  1. python矩阵变成图片_Python将numpy矩阵保存为PNG图片

    我通过PIL和numpy处理的图片现在是一个numpy array,我希望它存回png格式,于是查到了scipy.misc.toimage可以做到,但是这里面有一些需要注意的地方. 直接上我的code ...

  2. 怎么看python环境变量配置是否好了验证图片_python 的 tesserocr 模块安装与获取图片验证码...

    OCR,即Optical Character Recognition,光学字符识别,是指通过扫描字符,然后通过其形状将其翻译成电子文本的过程.对于图形验证码来说,它们都是一些不规则的字符,这些字符确实 ...

  3. python读取word图片_Python中如何读取Word中的图片

    Python能够快速的编写.调试,用来提取各类软件中的图片再好不过了.今天小编就为大家带来在Python中提取Word图片的方法. 方法 需要批量的修改文件后缀名,并且解压之后将图片拷贝到需要存放的地 ...

  4. python 画图代码及解释_python画图(图例、网格、注释) - v2

    每件事情总有两面性,当我们看到不太好的一面时,一定要想着去寻找一下好的一面.就比如,原本计划好的五一行程被打乱之后,我脑子里便诞生了一个"伟大"的想法,立马买好了乳胶漆打算利用闲暇 ...

  5. python时间函数详解_Python:Numpy库基础分析——详解datetime类型的处理

    原标题:Python:Numpy库基础分析--详解datetime类型的处理 Python:Numpy库基础分析--详解datetime类型的处理 关于时间的处理,Python中自带的处理时间的模块就 ...

  6. python画图怎样写文字_python画图系列之个性化显示x轴区段文字的实例

    今天在写一个研究生创新项目申报书时涉及到一个python画图问题,对于在x轴各个区段显示自定义的字符串有些疑问,特此记录. 界面如下所示: 代码如下所示: import matplotlib.pypl ...

  7. python爬图代码实例_Python爬虫爬取煎蛋网图片代码实例

    这篇文章主要介绍了Python爬虫爬取煎蛋网图片代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 今天,试着爬取了煎蛋网的图片. 用到的包: ...

  8. c++读出像素矩阵_Python传numpy矩阵调c++(求3D图像连通区域)

    Python有很多种调c++的方法,有的复杂有的简单,有时使用的时候反而不知道到底该用哪一种比较好,其实没有最好的方法,只有适合不适合自己.本文从我所遇到的问题说起,然后讲述另一种比较简单的pytho ...

  9. python 画图设置横纵坐标_Python输出高质量论文图片

    科研至今十年有余,一直使用MATLAB作图,但是一直觉得MATLAB的线条图的不够优美,特别是线型的短板极大的限制了作图的灵活性. MATLAB只有默认的四种线型,而且输出效果比较呆板.最近在一篇文章 ...

最新文章

  1. AE 先进的视频画面 快速释放 慢动作
  2. 互联网日报 | 4月20日 星期二 | 华为正式宣布卖车;携程在港交所挂牌上市;广州期货交易所正式揭牌...
  3. python培训一般多久_零基础学python需要多久
  4. linux 下把整数转化为字符串
  5. 【毕业设计】php+mysql社区交流系统(毕业论文+封面目录+系统+说明书)
  6. Unity3D研究院之Prefab里面的Prefab关联问题
  7. 基恩士PLC实例笔记①--立项及编程
  8. zemax仿真半导体激光器
  9. 中控智慧指纹采集器live20R用C二次开发,导入开发包时报错“HANDLE未定义”之类的错误
  10. matlab无限长一维原子链,优·王淑华固体物理答案第三章.ppt
  11. noip2005 篝火晚会
  12. Biopython -- Bio.Entrez module
  13. unity shader 热扭曲 (屏幕后处理)
  14. 中央财经大学c语言试题答案,中央财经大学C语言题
  15. Java编写图像浏览器_浏览器下载图像(JAVA代码)
  16. 通过ssh访问docker容器的办法 亲测可行
  17. [PCIe]PCIe设备在一个系统中是如何发现与访问的
  18. Docker常用命令使用详解(docker help、version、info、images)(一)
  19. 【毕业设计】基于单片机无线充电的4轴飞行器 -物联网 嵌入式 stm32
  20. linux命令之打包和解压

热门文章

  1. 牛顿法 拟牛顿法DFP BFGS L-BFGS的理解
  2. 免费合同管理软件有哪个好用?有哪些功能?
  3. 2021-11-20 任务一:健康评估功能的展示
  4. 现实世界的Windows Azure:访问海军研究局破坏性业务技术总监Dano DeBrou
  5. Window mobile 软键盘输入法设置
  6. H3C交换机升级系统镜像
  7. 【练一下2】汽车领域多语种迁移学习挑战赛[2022.7.8]
  8. 京东java面试题目
  9. filebeat7.7.0相关详细配置预览- processors - script
  10. 如何在Axure中动态加载图表(Axhub Charts)