python浮点型数据怎么显示为图片_python数字图像处理(4):图像数据类型及颜色空间转换...
一、图像数据类型及转换
在skimage中,一张图片就是一个简单的numpy数组,数组的数据类型有很多种,相互之间也可以转换。这些数据类型及取值范围如下表所示:
Data typeRange
uint8
0 to 255
uint16
0 to 65535
uint32
0 to 232
float
-1 to 1 or 0 to 1
int8
-128 to 127
int16
-32768 to 32767
int32
-231 to 231 - 1
一张图片的像素值范围是[0,255], 因此默认类型是unit8, 可用如下代码查看数据类型:
from skimage importio,data
img=data.chelsea()print(img.dtype.name)
在上面的表中,特别注意的是float类型,它的范围是[-1,1]或[0,1]之间。一张彩色图片转换为灰度图后,它的类型就由unit8变成了float
1、unit8转float
from skimage importdata,img_as_float
img=data.chelsea()print(img.dtype.name)
dst=img_as_float(img)print(dst.dtype.name)
输出:
uint8
float64
2、float转uint8
from skimage importimg_as_ubyteimportnumpy as np
img= np.array([0, 0.5, 1], dtype=float)print(img.dtype.name)
dst=img_as_ubyte(img)print(dst.dtype.name)
输出:
float64
uint8
float转为unit8,有可能会造成数据的损失,因此会有警告提醒。
除了这两种最常用的转换以外,其实有一些其它的类型转换,如下表:
Function nameDescription
img_as_float
Convert to 64-bit floating point.
img_as_ubyte
Convert to 8-bit uint.
img_as_uint
Convert to 16-bit uint.
img_as_int
Convert to 16-bit int.
二、颜色空间及其转换
如前所述,除了直接转换可以改变数据类型外,还可以通过图像的颜色空间转换来改变数据类型。
常用的颜色空间有灰度空间、rgb空间、hsv空间和cmyk空间。颜色空间转换以后,图片类型都变成了float型。
所有的颜色空间转换函数,都放在skimage的color模块内。
例:rgb转灰度图
from skimage importio,data,color
img=data.lena()
gray=color.rgb2gray(img)
io.imshow(gray)
其它的转换,用法都是一样的,列举常用的如下:
skimage.color.rgb2grey(rgb)
skimage.color.rgb2hsv(rgb)
skimage.color.rgb2lab(rgb)
skimage.color.gray2rgb(image)
skimage.color.hsv2rgb(hsv)
skimage.color.lab2rgb(lab)
实际上,上面的所有转换函数,都可以用一个函数来代替
skimage.color.convert_colorspace(arr, fromspace, tospace)
表示将arr从fromspace颜色空间转换到tospace颜色空间。
例:rgb转hsv
from skimage importio,data,color
img=data.lena()
hsv=color.convert_colorspace(img,'RGB','HSV')
io.imshow(hsv)
在color模块的颜色空间转换函数中,还有一个比较有用的函数是
skimage.color.label2rgb(arr), 可以根据标签值对图片进行着色。以后的图片分类后着色就可以用这个函数。
例:将lena图片分成三类,然后用默认颜色对三类进行着色
from skimage importio,data,colorimportnumpy as np
img=data.lena()
gray=color.rgb2gray(img)
rows,cols=gray.shape
labels=np.zeros([rows,cols])for i inrange(rows):for j inrange(cols):if(gray[i,j]<0.4):
labels[i,j]=0elif(gray[i,j]<0.75):
labels[i,j]=1
else:
labels[i,j]=2dst=color.label2rgb(labels)
io.imshow(dst)
python浮点型数据怎么显示为图片_python数字图像处理(4):图像数据类型及颜色空间转换...相关推荐
- python 图像数据类型及颜色空间转换
一.图像数据类型及转换 在skimage中,一张图片就是一个简单的numpy数组,数组的数据类型有很多种,相互之间也可以转换.这些数据类型及取值范围如下表所示: Data type Range uin ...
- python在画布上显示动态图片_python – matplotlib – 直接在画布上绘图
由于动态更新的性能问题,我需要在画布上直接绘制很多矩形作为非常低的级别,也就是说不使用matplotlib.patches,因为我们必须使用经典的GUI. 更准确地说,我想只绘制一个矩形,而不仅仅是所 ...
- python在画布上显示动态图片_python Tkinter在画布上显示图像,它总是blin
我正在从相机捕捉图像,并将图像显示在Tkinter的画布上. 但是,出现了一个奇怪的现象,画布将闪烁下面的代码def get_image_cam() : global cam,cam_flag,cam ...
- python 操作word 替换字符串为图片_python实战===老司机奇技淫巧系列之字符转换成图片...
先放两张效果图: 还有这个: 是不是立马逼格满满~ 这里用到的是一个有趣的模块,叫wordcloud: *建议自行通过下载setup.py的方式安装,pip install 不一定能下载成功. 打开, ...
- python显示gif图片_Python给gif图片加文字水印
为了成批地给图像增加水印,我们这里用到了枕头模块.它的英文名为pillow.安装它的方式为用cmd命令打开DOS提示符窗口,然后输入pip install pillow即可.就像下面这样: pytho ...
- python浮点型数据_python中整型与浮点型的数值转换
知识回顾:上一节,我们学习了input输入函数,这个函数有返回值,返回值的类型是string字符串类型. 输出函数我们使用print函数,输出函数其实有很多可以使用的技巧,它可以输出很多类型的结果,对 ...
- python怎么制作图像_python数字图像处理(5):图像的绘制
实际上前面我们就已经用到了图像的绘制,如: io.imshow(img) 这一行代码的实质是利用matplotlib包对图片进行绘制,绘制成功后,返回一个matplotlib类型的数据.因此,我们也可 ...
- Python实现数字图像处理之5种彩色空间转换(单图+多图+视频)
本文主要运用用Python代码实现了5种彩色空间之间的转换! 具体而言,包括: 1)RGB → CMY: 2) CMY → RGB: 3) RGB → HSI: 4) HSI → RGB: 5) ...
- 数字图像处理——对图像进行反白、更改调色板信息、彩色图像变灰度、将图像数据保存于txt文件
数字图像处理课的第一次实验,主要是对BMP图像的处理,并且学习熟悉excel可视化实验数据 实验环境 建立动态库工程,录入HXLBMPFILE类,建立相应动态库,将整个类作为动态库输出 (HXLBMP ...
最新文章
- JTextPane设置颜色出现的问题
- Python 进阶:enum 模块源码分析
- pybind11简单使用
- 在IBM Cloud中运行Fabric
- 使用windows server backup备份还原hyper-v 3.0虚拟机
- 【LeetCode笔记 - 每日一题】373. 查找和最小的 K 对数字(Java、堆、优先队列)
- jQuery源码解析(5)—— Animation动画
- 终于开通了,呵呵,以后跟大家一起讨论
- LeetCode之二分查找
- linux搭建raid5命令,Linux下用mdadm命令创建软RAID5
- 需要掌握的flex知识点
- 线性代数及其应用(第三版)5.1节习题解答
- 华为2019网络挑战赛初赛网络方向部分模拟题及答案
- 用计算机写作文的好处,第7课 用计算机写作文教案
- 红米手机开启开发者模式方法
- 【python】文件读取写 open的方式with的方式 异常报错处理
- 为什么SAST和SCA在SDLC中很重要?
- 2018年android常用的框架介绍
- RDD:基于内存集群计算的容错抽象。
- 高斯滤波及高斯卷积核C++实现
热门文章
- 山东科技大学计算机等级,关于2019年03月全国计算机等级考试报名工作的通知
- crontab 每周五_crontab定时任务 每隔一周的周五执行
- 步进电机编写单4拍或4-8拍方式的汇编或c语言控制程序.,基于SCM和PLC的两种步进电机控制方法...
- MyEclipse移动开发教程:迁移HTML5移动项目到PhoneGap(二)
- BootStrapJS——modal弹出框
- 1. 在虚拟机中 添加内容
- codeforces #236 div2 简洁题解
- toolStrip 按钮图片大小的修改
- 网络数据库的复制和同步(转摘)
- [剑指offer][JAVA]面试题第[17]题[打印从1到最大的n位整数][大整数][递归回溯]