0
点赞
收藏
分享

微信扫一扫

对图像的基本理解

对于图像,我们要有一定的理解

对于我们的眼睛而言,图像就是图像。

但对于计算机而言,

在计算机的视觉中,无论是什么图像都只不过由像素点组成的

也就是程序中的高维的数组或是矩阵。

关于计算机显示图像的发展

刚开始是二值图像,也就是只有黑色和白色的图像。

图像对计算机而言就是矩阵,矩阵也就是像素点

计算机会将白色的像素点处理为“1”,黑色的处理为“0”。

也就是1二进制数表示1个像素点

因为二值图像只有黑白,后来就出现了灰度图像

计算机会把灰度处理为256个灰度级,用数值区间[0,255]来表示。

“0”为纯黑色,“255”表示纯白色。其余数值表示不同的灰度。

这样的图就可以显示出更多的细节。

此时,要8个二进制数表示1个像素点。[255,255]

到后来就有了彩色图像。人们发现所有颜色都可以通过“三原色”的不同配比得到。

“三原色”也就是红绿蓝。一般用R、G、B来表示它们。

OpenCV中,通道的顺序是BGR。

也就是说,我们可以用三条通道来表示三种颜色的灰度图像,然后在把他们合并起来。

就可以的到一张彩色图像。 [255,255,3] 3表示三条通道

图像本质上就是数组。

当然也要对色彩空间有一定的了解。

不同的模块显示的图像默认的色彩空间可能不一样。

比如opencv是BGR(蓝绿红)

matplotlib是RGB(红绿蓝)

所以要用不同模块来显示图像,如果不转换成该模块应默认的色彩空间,就可能会显示出同一张图片,但是色彩不同的情况。

opencv中可使用cv2.cvtColor(读取图像,色彩空间转换常数)

色彩空间转换常数:cv2.COLOR_BGR2RGB

BGR色彩空间转换为 RGB色彩空间。

举报

相关推荐

0 条评论