opencv, matplotlib, visdom的图像格式及Python转换方式

1. 图像的基础知识

图像有高度和宽度决定了图像的大小,单位一般是像素,这里所有提及的也是像素。

图像的通道数决定是否显示颜色。灰度图一般是单通道的,但也可以用三通道表示,彩色图像都是三通道的。三通道指RGB,即red红色,green绿色,blue蓝色。

图像的像素值为[0-255],表示的是其对应的颜色强度值,0表示最弱(理解为黑色),255表示最强(理解为白色)。

所以我们知道图像的基本参数就是 高、宽、通道数,像素值,以及通道的排序。

2. Opencv, matplotlib, visdom的图像显示格式

目前有许多的图像处理库,常见的有opencv, matplotlib, visdom

因为实际上在设计这些库的时候并没有要求他们在读取图像数据的时候必须按照某种特定的矩阵方式读取,因此他们的图像表示均有所不同。所以在 (高 宽 R G B)这五个参数的排序上也都不相同。

opencv的图像格式为[高 宽 [B G R]] 即 HxWx3, 3的顺序为B G R

matpltlib的图像格式为[高 宽 [R G B]] 即 HxWx3, 3的顺序为R G B

visdom的图像格式为[[R G B] 高 宽] 即3xHxW, 3的顺序为R G B

3. Python进行格式转换代码:

rgb = bgr[...,::-1].copy()
bgr = rgb[...,::-1].copy()
gbr = rgb[...,[2,0,1]].copy()

 

你可能感兴趣的:(图像处理,opencv,visdom,matplotlib,图像格式)