python 16bit转8bit的工具_python存储16bit和32bit图像的实例
笔记: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) #
tif8 = scipy.misc.imread(path8) #
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 #
print(type(y[0,0]))
print()
# Convert y to 16 bit unsigned integers
z16 = (y.astype(np.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)) #
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 16bit转8bit的工具_python存储16bit和32bit图像的实例相关推荐
- python 16bit转8bit的工具_wav文件16bit量化比特转8bit量化比特
将 WAV16bit 量化比特转为 8bit 量化比特 #include #include /* wav 音频头部格式 */ typedefstruct _wave_pcm_hdr { char ri ...
- python开发web运维工具_Python web 开发工具箱
工欲善其事,必先利其器(装逼工具)Pycharm.专业的python IDE,功能很强大,特别喜欢它的代码merge工具,不想被编辑器折腾死的推荐直接使用,五星级推荐.(除了内存占用大点) vim.本 ...
- idle不是python自带的开发工具_Python的开发工具
通常情况下,为了提高开发效率,需要使用相应的开发工具.进行Python开发也可以使用开发工具.下面将详细介绍Python自带的IDLE 一使用自带的IDLE 在安装Python后,会自动安装一个IDL ...
- python 16bit转8bit的工具_利用python读取YUV文件 转RGB 8bit/10bit通用
注:本文所指的YUV均为YUV420中的I420格式(最常见的一种),其他格式不能用以下的代码. 位深为8bit时,每个像素占用1字节,对应文件指针的fp.read(1): 位深为10bit时,每个像 ...
- python图片保存为txt文件_python + opencv实现提取png图像的像素信息并存储到txt文件中(附安装指导)...
相关库安装指导: 这里我们需要 opencv_python,numpy,matplotlib库,另外我用的是python3.6.1版本. 一般库大家都是用pip install命令安装的,不过不知道为 ...
- python可以做哪些小工具_python的简单实用小工具
在python进行自动化编写的过程中,常常需要造一些数据,比如,获取随机的合法IP,随机的字符串,当前的时间等,下面的一些方法应该可以用到,希望对你有所帮助 #!/user/bin/env pytho ...
- python爬取视频的工具_Python爬取视频(其实是一篇福利)
原博文 2018-01-09 00:14 − 窗外下着小雨,作为单身程序员的我逛着逛着发现一篇好东西,来自知乎 你都用 Python 来做什么?的第一个高亮答案. 到上面去看了看,地址都是明文的,得, ...
- python代码行数统计工具_Python实现代码行数统计工具的功能(实例)
本篇文章给大家带来的内容是关于Python实现代码行数统计工具的功能(实例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 我们经常想要统计项目的代码行数,但是如果想统计功能比较完善 ...
- python引流脚本开发工具_Python脚本 抖X自动关注粉丝引流脚本
#python 3.6.4 # encoding:utf-8 #确保已连接好adb #1080 2280 分辨率,一加6测试通过 #抖音版本20200618 import os import cv2 ...
最新文章
- 美媒评2018年全球十大突破性技术:AI和人工胚胎上榜
- 模板资源管理器的使用
- Oracle Goldengate ORA-21780故障处理
- 容器学习 之 本地镜像与共有镜像(十)
- 老码农90%的程序员都是瞎努力!这份路线教你成为高手
- mysql5.7 设置远程访问
- Node.js ES6 模块化的基本语法-按需导出与按需导入
- [python]一个遍历多层文件夹,然后替换文件内容和目录名称的案例
- MyEclipse SVN插件的安装
- Java周记(第一周)
- log4j自定义配置文件路径
- 薛定谔Maestro教程--用户界面1
- 配置switchOmegaProxy插件
- 快速学习-帕特里夏树
- 什么牌子的护眼灯最好推荐?盘点口碑好的护眼灯品牌
- PTA ## 统计字符
- OpenMP中的Reduction操作 #pragma omp xxx reduction()
- phpstorm2018版激活办法,2018/5/28实锤有效
- 一维数据中位值平均滤波法MATLAB代码
- 三国之麻将无双java_武将无双之三国赵云
热门文章
- python – 如何将两个列表的元素添加到一个列表中?extend
- XP修改桌面路径方法
- ebs系统应用层次架构
- c++模板 --- 类模板、自定义类型当做模板参数
- onnxruntime gpu 推理
- ROS SMACH基础教程(一)
- ios 点生成线路 百度地图_百度地图下载-百度地图ios版15.3.0苹果版-东坡下载
- AI_Security | 眼见未必为实:警惕AI时代的新诈骗
- 分析在线生成模板、导入、导出
- matlab减震控制,基于SMA-SPDS的小雁塔结构减震控制研究