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 BeautifulSoup设置页面编码的方法
Apr 03 Python
python数据处理实战(必看篇)
Jun 11 Python
实例分析python3实现并发访问水平切分表
Sep 29 Python
Python3对称加密算法AES、DES3实例详解
Dec 06 Python
Django2.1集成xadmin管理后台所遇到的错误集锦(填坑)
Dec 20 Python
对Python生成汉字字库文字,以及转换为文字图片的实例详解
Jan 29 Python
python装饰器简介---这一篇也许就够了(推荐)
Apr 01 Python
为什么从Python 3.6开始字典有序并效率更高
Jul 15 Python
keras 读取多标签图像数据方式
Jun 12 Python
Python系统公网私网流量监控实现流程
Nov 23 Python
python 用Matplotlib作图中有多个Y轴
Nov 28 Python
Python爬虫进阶之Beautiful Soup库详解
Apr 29 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
实现 win2003 下 mysql 数据库每天自动备份
2006/12/06 PHP
学习使用curl采集curl使用方法
2012/01/11 PHP
Yii实现显示静态页的方法
2016/04/25 PHP
PHP基于curl后台远程登录正方教务系统的方法
2016/10/14 PHP
Yii使用EasyWechat实现小程序获取用户的openID的方法
2020/04/29 PHP
JavaScript继承方式实例
2010/10/29 Javascript
关于js获取radio和select的属性并控制的代码
2011/05/12 Javascript
javascript:void(0)的作用示例介绍
2013/10/28 Javascript
jquery实现图片灯箱明暗的遮罩效果
2013/11/15 Javascript
js操作table示例(个人心得)
2013/11/29 Javascript
javascript + jquery实现定时修改文章标题
2014/03/19 Javascript
Node.js实现兼容IE789的文件上传进度条
2016/09/02 Javascript
JS正则RegExp.test()使用注意事项(不具有重复性)
2016/12/28 Javascript
vue2组件实现懒加载浅析
2017/03/29 Javascript
详解Vue改变数组中对象的属性不重新渲染View的解决方案
2018/09/21 Javascript
Vue高版本中一些新特性的使用详解
2018/09/25 Javascript
JS+HTML5 canvas绘制验证码示例
2018/12/05 Javascript
Python装饰器基础详解
2016/03/09 Python
python并发编程之多进程、多线程、异步和协程详解
2016/10/28 Python
Python中pandas模块DataFrame创建方法示例
2018/06/20 Python
python3 flask实现文件上传功能
2020/03/20 Python
Python3简单爬虫抓取网页图片代码实例
2019/08/26 Python
Python从文件中读取指定的行以及在文件指定位置写入
2019/09/06 Python
python 爬取古诗文存入mysql数据库的方法
2020/01/08 Python
Anaconda的安装及其环境变量的配置详解
2020/04/22 Python
Python实现Word文档转换Markdown的示例
2020/12/22 Python
详解HTML5中rel属性的prefetch预加载功能使用
2016/05/06 HTML / CSS
美国Jeep配件购物网站:Morris 4×4 Center
2019/05/01 全球购物
美国在线购买内衣网站:HerRoom
2020/02/22 全球购物
聚网科技C++面试笔试题
2015/09/01 面试题
路政管理专业个人自荐信范文
2013/11/30 职场文书
自动化毕业生专业自荐书范文
2014/02/04 职场文书
如何写求职信
2014/05/24 职场文书
工作态度怎么写
2015/06/25 职场文书
银行中层干部培训心得体会
2016/01/11 职场文书
Redis Cluster 集群搭建你会吗
2021/08/04 Redis