python数字图像处理数据类型及颜色空间转换


Posted in Python onJune 28, 2022

一、图像数据类型及转换

在skimage中,一张图片就是一个简单的numpy数组,数组的数据类型有很多种,相互之间也可以转换。这些数据类型及取值范围如下表所示:

Data type Range
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 import io,data
img=data.chelsea()
print(img.dtype.name)

在上面的表中,特别注意的是float类型,它的范围是[-1,1]或[0,1]之间。一张彩色图片转换为灰度图后,它的类型就由unit8变成了float

1、unit8转float

from skimage import data,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 import img_as_ubyte
import numpy 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 name Description
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 import io,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 import io,data,color
img=data.lena()
hsv=color.convert_colorspace(img,'RGB','HSV')
io.imshow(hsv)

python数字图像处理数据类型及颜色空间转换

在color模块的颜色空间转换函数中,还有一个比较有用的函数是

skimage.color.label2rgb(arr), 可以根据标签值对图片进行着色。以后的图片分类后着色就可以用这个函数。

例:将lena图片分成三类,然后用默认颜色对三类进行着色

from skimage import io,data,color
import numpy as np
img=data.lena()
gray=color.rgb2gray(img)
rows,cols=gray.shape
labels=np.zeros([rows,cols])
for i in range(rows):
    for j in range(cols):
        if(gray[i,j]<0.4):
            labels[i,j]=0
        elif(gray[i,j]<0.75):
            labels[i,j]=1
        else:
            labels[i,j]=2
dst=color.label2rgb(labels)
io.imshow(dst)

python数字图像处理数据类型及颜色空间转换

以上就是python数字图像处理数据类型及颜色空间转换的详细内容,更多关于python图像数据类型颜色空间的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
Python ORM框架SQLAlchemy学习笔记之映射类使用实例和Session会话介绍
Jun 10 Python
跟老齐学Python之再深点,更懂list
Sep 20 Python
django2+uwsgi+nginx上线部署到服务器Ubuntu16.04
Jun 26 Python
python实现动态数组的示例代码
Jul 15 Python
Python 解决OPEN读文件报错 ,路径以及r的问题
Dec 19 Python
使用 pytorch 创建神经网络拟合sin函数的实现
Feb 24 Python
matlab灰度图像调整及imadjust函数的用法详解
Feb 27 Python
基于python实现查询ip地址来源
Jun 02 Python
基于python实现MQTT发布订阅过程原理解析
Jul 27 Python
python实现跨年表白神器--你值得拥有
Jan 04 Python
完美处理python与anaconda环境变量的冲突问题
Apr 07 Python
关于python中readlines函数的参数hint的相关知识总结
Jun 24 Python
python数据分析之单因素分析线性拟合及地理编码
python可视化分析绘制带趋势线的散点图和边缘直方图
基于Python编写一个监控CPU的应用系统
如何基于python实现单目三维重建详解
python如何读取和存储dict()与.json格式文件
Jun 25 #Python
python运行脚本文件的三种方法实例
Jun 25 #Python
如何利用python创作字符画
You might like
生成sessionid和随机密码的例子
2006/10/09 PHP
PHP 抓取新浪读书频道的小说并生成txt电子书的代码
2009/12/18 PHP
php流量统计功能的实现代码
2012/09/29 PHP
php switch语句多个值匹配同一代码块应用示例
2014/07/29 PHP
php利用cookies实现购物车的方法
2014/12/10 PHP
Yii2框架中日志的使用方法分析
2017/05/22 PHP
PHP使用HTML5 FormData对象提交表单操作示例
2019/07/02 PHP
关于IE7 IE8弹出窗口顶上
2008/12/22 Javascript
基于jquery的inputlimiter 实现字数限制功能
2010/05/30 Javascript
JQuery中上下文选择器实现方法
2015/05/18 Javascript
javascript自动切换焦点控制效果完整实例
2016/02/02 Javascript
AngularJS实现textarea记录只能输入规定数量的字符并显示
2016/04/26 Javascript
微信小程序动态添加分享数据
2017/06/14 Javascript
js 简易版滚动条实例(适用于移动端H5开发)
2017/06/26 Javascript
Vue实现textarea固定输入行数与添加下划线样式的思路详解
2018/06/28 Javascript
Vue2.X 通过AJAX动态更新数据
2018/07/17 Javascript
js常用正则表达式集锦
2019/05/17 Javascript
JS实现的排列组合算法示例
2019/07/16 Javascript
微信小程序实现打开并下载服务器上面的pdf文件到手机
2019/09/20 Javascript
vue项目中在可编辑div光标位置插入内容的实现代码
2020/01/07 Javascript
使用nodeJS中的fs模块对文件及目录进行读写,删除,追加,等操作详解
2020/02/06 NodeJs
Python 获取新浪微博的最新公共微博实例分享
2014/07/03 Python
python help函数实例用法
2020/12/06 Python
10个顶级Python实用库推荐
2021/03/04 Python
Canvas图片分割效果的实现
2019/07/29 HTML / CSS
软件测试笔试题
2012/10/25 面试题
高三地理教学反思
2014/01/11 职场文书
建筑工地宣传标语
2014/06/18 职场文书
超市理货员岗位职责
2014/07/04 职场文书
公司授权委托书范本
2014/09/18 职场文书
教师师德师风整改措施
2014/10/24 职场文书
会议开幕词
2015/01/28 职场文书
财政局长个人总结
2015/03/04 职场文书
想创业成功,需要掌握这些要点
2019/12/06 职场文书
Python使用protobuf序列化和反序列化的实现
2021/05/19 Python
PostgreSQL并行计算算法及参数强制并行度设置方法
2022/04/06 PostgreSQL