Python颜色空间转换(sRGB,AdobeRGB,CIE XYZ,Lab,HSV互转)

本文介绍了如何使用imgvision库进行颜色空间转换,包括RGB到XYZ、Lab、HSV的转换,以及光源和RGB空间的详细设置。imgvision库基于Numpy,支持双精度和各种进制图像,简化了图像处理过程,如归一化、光源选择(如D50)和色彩空间选择(如sRGB、AdobeRGB)。此外,还展示了HSV到RGB的转换,并提到了HSV图像数值范围及图像质量评价的可能性。
摘要由CSDN通过智能技术生成

颜色空间转换

颜色空间的灵活运用将使得图像处理识别等变得更加灵活简便。相比python-opencvimgvision不局限于数据类型,适用于双精度以及各进制图像的转换。
imgvision库用于进行图像处理与质量评价。该库仅基于Numpy库进行编写,通过矩阵的方式对图像进行快速处理,包括不限于光谱图像的不同光源下颜色空间转换、RGB图像不同光源下的色空间转换、光谱图像余弦距离的监督聚类、图像的质量评价等。

安装imgvision 1.7.3

imgvision 通过pip直接进行安装:

pip install imgvision

颜色空间互转

下面案例将进行演示颜色空间的互相转换。

import numpy as np
import imgvision as iv

#导入RGB图像
Image = np.load('RGB_image.npy')
print(Image.shape)
#(2560,2560,3)  导入RGB图像分辨率为2560*2560


#创建转换器
cvtor = iv.cvtcolor()

#RGB转XYZ
xyz_Image = cvtor.rgb2xyz(Image)

#RGB转Lab
lab_Image = cvtor.rgb2lab(Image)

#xyz转Lab
lab_Image = cvtor.xyz2lab(xyz_Image)

#RGB转HSV
hsv_Image = cvtor.rgb2hsv(Image)  #输出HSV数值范围 H:0~360 S:0~1 V:0~1

#HSV转RGB
RGB_Image = cvtor.hsv2rgb(hsv_Image)

#Lab转XYZ
xyz_Image = cvtor.lab2xyz(lab_Image)

#Lab转RGB
RGB_Image = cvtor.lab2rgb(lab_Image)

#xyz转sRGB
sRGB_Image = cvtor.xyz2srgb(xyz_Image)

对于光源和RGB空间有一定要求的,可以进行更详细的设置,如下:

import numpy as np
import imgvision as iv

#导入RGB图像
Image = np.load('RGB_image.npy')
print(Image.shape)
#(2560,2560,3)  导入RGB图像分辨率为2560*2560
Image = Image/np.max(Image) #归一化操作

#创建转换器
cvtor = iv.cvtcolor(illuminant='d50') #默认为传入图像D65光源下进行转换。illuminant='d50'则表示是光源d50下的图像

#RGB转XYZ
xyz_Image = cvtor.rgb2xyz(Image,space='srgb') #默认为sRGB转CIE1964 XYZ。
#space='adobergb'则表示传入rgb为AdobeRGB。除此之外还包括apple display p3,space='adp3'

#RGB转Lab
lab_Image = cvtor.rgb2lab(Image,space='srgb') #space参数解释同RGB转XYZ

#xyz转Lab
lab_Image = cvtor.xyz2lab(xyz_Image)

#RGB转HSV
hsv_Image = cvtor.rgb2hsv(Image,img_type='Norm')  
#默认Norm表示rgb图像为float类型并且数值范围在0~1之间(超过1的数值仍然会参与运算且不会被任何处理压缩)
#若图像为uint8或0~255范围则输入img_type=''

#HSV转RGB
RGB_Image = cvtor.hsv2rgb(hsv_Image)

#Lab转XYZ
xyz_Image = cvtor.lab2xyz(lab_Image)

#Lab转RGB
RGB_Image = cvtor.lab2xyz(lab_Image,space='srgb') #将Lab图像转换为sRGB

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

曹栩珩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值