python存储16bit和32bit图像的实例


Posted in Python onDecember 05, 2018

笔记:python中存储16bit和32bit图像的方法。

说明:主要是利用scipy库和pillow库,比较其中的不同。

'''
测试16bit和32bit图像的python存储方法
'''
import numpy as np
 
import scipy.misc
from PIL import Image
 
# 用已有的8bit和16bit图作存储测试
path16 = 'D:\Py_exercise\lena16.tif'
path8 = 'D:\Py_exercise\lena8.tif'
tif16 = scipy.misc.imread(path16)  #<class 'numpy.uint16'>
tif8 = scipy.misc.imread(path8)   #<class 'numpy.uint8'>
print(np.shape(tif16),type(tif16[0,0])) 
print(np.shape(tif8),type(tif8[0,0])) 
print()
 
save16 = 'D:\Py_exercise\lena16_save.tif'
save8 = 'D:\Py_exercise\lena8_save.tif'
scipy.misc.imsave(save16, tif16)   #--> 8bit
scipy.misc.imsave(save8, tif8)   #--> 8bit
 
 
# Create a mat which is 64 bit float
nrows = 512
ncols = 512
np.random.seed(12345)
y = np.random.randn(nrows, ncols)*65535 #<class 'numpy.float64'>
print(type(y[0,0]))
print()
 
# Convert y to 16 bit unsigned integers
z16 = (y.astype(np.uint16))    #<class 'numpy.uint16'>
print(type(z16[0,0]))
print()
 
# 用产生的随机矩阵作存储测试
save16 = 'D:\Py_exercise\lena16_save1.tif'
scipy.misc.imsave(save16, z16)     #--> 8bit
 
im = Image.frombytes('I;16', (ncols,nrows), y.tostring())
im.save('D:\Py_exercise\lena16_save21.tif') #--> 16bit
im = Image.fromarray(y)      
im.save('D:\Py_exercise\lena16_save22.tif') #--> 32bit
im = Image.fromarray(z16)      
im.save('D:\Py_exercise\lena16_save23.tif') #--> 16bit
 
# 归一化后的np.float64仍然存成了uint8
zNorm = (z16-np.min(z16))/(np.max(z16)-np.min(z16)) #<class 'numpy.float64'>
print(type(zNorm[0,0]))
save16 = 'D:\Py_exercise\lena16_save11.tif'
scipy.misc.imsave(save16, zNorm)    #--> 8bit
 
# 归一化后的np.float64直接转8bit或16bit都会超出阈值,要*255或*65535
# 如果没有astype的位数设置,会直接存成32bit
zImg = (zNorm*65535).astype(np.uint16) 
im = Image.fromarray(zImg)
im.save('D:\Py_exercise\lena16_save31.tif') #--> 16bit
im = Image.fromarray(zNorm)
im.save('D:\Py_exercise\lena16_save32.tif') #--> 32bit(0~1)

以上这篇python存储16bit和32bit图像的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中join和split用法实例
Apr 14 Python
使用C语言来扩展Python程序和Zope服务器的教程
Apr 14 Python
Python使用Matplotlib实现Logos设计代码
Dec 25 Python
Python中pillow知识点学习
Apr 30 Python
Python统计一个字符串中每个字符出现了多少次的方法【字符串转换为列表再统计】
May 05 Python
python+selenium实现简历自动刷新的示例代码
May 20 Python
选择Python写网络爬虫的优势和理由
Jul 07 Python
Python如何使用k-means方法将列表中相似的句子归类
Aug 08 Python
python 实现查询Neo4j多节点的多层关系
Dec 23 Python
flask 框架操作MySQL数据库简单示例
Feb 02 Python
Pytorch mask_select 函数的用法详解
Feb 18 Python
Django自带用户认证系统使用方法解析
Nov 12 Python
Python随机生成身份证号码及校验功能
Dec 04 #Python
python 从文件夹抽取图片另存的方法
Dec 04 #Python
使用Python实现微信提醒备忘录功能
Dec 04 #Python
flask-restful使用总结
Dec 04 #Python
Python读取YUV文件,并显示的方法
Dec 04 #Python
对Python3+gdal 读取tiff格式数据的实例讲解
Dec 04 #Python
用python代码将tiff图片存储到jpg的方法
Dec 04 #Python
You might like
全国FM电台频率大全 - 28 甘肃省
2020/03/11 无线电
模仿OSO的论坛(四)
2006/10/09 PHP
PHP4 与 MySQL 数据库操作函数详解
2006/12/06 PHP
JS实现php的伪分页
2008/05/25 PHP
ThinkPHP访问不存在的模块跳转到404页面的方法
2014/06/19 PHP
php命令行用法入门实例教程
2014/10/27 PHP
php+mysql数据库查询实例
2015/01/21 PHP
php表单提交实例讲解
2015/11/12 PHP
Yii Framework框架使用PHPExcel组件的方法示例
2019/07/24 PHP
thinkphp5.1框架中容器(Container)和门面(Facade)的实现方法分析
2019/08/05 PHP
简介JavaScript中的setHours()方法的使用
2015/06/11 Javascript
jQuery实现垂直半透明手风琴特效代码分享
2015/08/21 Javascript
json对象转为字符串,当做参数传递时加密解密的实现方法
2016/06/29 Javascript
jQuery bt气泡实现悬停显示及移开隐藏功能的方法
2016/07/12 Javascript
功能强大的Bootstrap组件(结合js)
2016/08/03 Javascript
JS中的hasOwnProperty()、propertyIsEnumerable()和isPrototypeOf()
2016/08/11 Javascript
浅谈jquery采用attr修改form表单enctype不起作用的问题
2016/11/25 Javascript
VUE元素的隐藏和显示(v-show指令)
2017/06/23 Javascript
jQuery实现手势解锁密码特效
2017/08/14 jQuery
vscode 开发Vue项目的方法步骤
2018/11/25 Javascript
JavaScript的级联函数用法简单示例【链式调用】
2019/03/26 Javascript
微信小程序防止多次点击跳转和防止表单组件输入内容多次验证功能(函数防抖)
2019/09/19 Javascript
详解node和ES6的模块导出与导入
2020/02/19 Javascript
python通过索引遍历列表的方法
2015/05/04 Python
详解一种用django_cache实现分布式锁的方式
2019/09/01 Python
python爬取Ajax动态加载网页过程解析
2019/09/05 Python
python 字典访问的三种方法小结
2019/12/05 Python
Python龙贝格法求积分实例
2020/02/29 Python
基于python 将列表作为参数传入函数时的测试与理解
2020/06/05 Python
幼儿园中班开学寄语
2014/04/03 职场文书
宣传口号大全
2014/06/16 职场文书
幼儿园教师工作总结2015
2015/04/02 职场文书
食品安全主题班会
2015/08/13 职场文书
优质护理服务心得体会
2016/01/22 职场文书
2019各种承诺书范文
2019/06/24 职场文书
Nginx实现高可用集群构建(Keepalived+Haproxy+Nginx)
2021/05/27 Servers