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求两个文本文件以行为单位的交集、并集与差集的方法
Jun 17 Python
5款非常棒的Python工具
Jan 05 Python
Python使用matplotlib绘制三维图形示例
Aug 25 Python
python3 读取Excel表格中的数据
Oct 16 Python
Python/Django后端使用PIL Image生成头像缩略图
Apr 30 Python
在SQLite-Python中实现返回、查询中文字段的方法
Jul 17 Python
python字典排序的方法
Oct 12 Python
创建Shapefile文件并写入数据的例子
Nov 26 Python
基于python使用tibco ems代码实例
Dec 20 Python
Pytorch 高效使用GPU的操作
Jun 27 Python
python爬虫筛选工作实例讲解
Nov 23 Python
详解Python内置模块Collections
Mar 22 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
php array_filter除去数组中的空字符元素
2020/06/21 PHP
php下foreach提示Warning:Invalid argument supplied for foreach()的解决方法
2014/11/11 PHP
php递归遍历删除文件的方法
2015/04/17 PHP
简单概括PHP的字符串中单引号与双引号的区别
2016/05/07 PHP
PHP数组基本用法与知识点总结
2020/06/02 PHP
js prototype 格式化数字 By shawl.qiu
2007/04/02 Javascript
javascript脚本调试方法小结
2008/11/24 Javascript
jquery 简短几句代码实现给元素动态添加及获取提示信息
2011/09/01 Javascript
两种不同的方法实现js对checkbox进行全选和反选
2014/05/13 Javascript
javascript面向对象之访问对象属性的两种方式分析
2015/01/13 Javascript
javascript属性访问表达式用法分析
2015/04/25 Javascript
3种js实现string的substring方法
2015/11/09 Javascript
微信小程序 弹窗自定义实例代码
2017/03/08 Javascript
微信小程序与php 实现微信支付的简单实例
2017/06/23 Javascript
激动人心的 Angular HttpClient的源码解析
2017/07/10 Javascript
Vue项目中quill-editor带样式编辑器的使用方法
2017/08/08 Javascript
JavaScript中Require调用js的实例分享
2017/10/27 Javascript
vue 运用mock数据的示例代码
2017/11/07 Javascript
原生JS实现多个小球碰撞反弹效果示例
2018/01/31 Javascript
JS常见DOM节点操作示例【创建 ,插入,删除,复制,查找】
2018/05/14 Javascript
JavaScript常见事件对象与操作实例总结
2019/01/05 Javascript
微信小程序的线程架构【推荐】
2019/05/14 Javascript
小程序实现按下录音松开识别语音
2019/11/22 Javascript
node.js实现http服务器与浏览器之间的内容缓存操作示例
2020/02/11 Javascript
原生js实现日历效果
2020/03/02 Javascript
python实现红包裂变算法
2016/02/16 Python
python实现决策树
2017/12/21 Python
python利用thrift服务读取hbase数据的方法
2018/12/27 Python
Python读取csv文件实例解析
2019/12/30 Python
python opencv实现简易画图板
2020/08/27 Python
Shell编程面试题
2012/05/30 面试题
初中生期末评语大全
2014/04/24 职场文书
先进个人事迹材料
2014/12/29 职场文书
医德医风个人总结
2015/02/28 职场文书
goland设置颜色和字体的操作
2021/05/05 Golang
pytorch MSELoss计算平均的实现方法
2021/05/12 Python