一、图像通道

  • 1.单通道

    单通道图,就是我们常说的灰度图,这种图像每个像素点都以一个值来表示颜色,这个值介于0-255之间。0代表黑色255代表白色,这两个值之间的颜色都是不同程度的灰色。
  • 2.二值化

    二值化图是单通道图的一种特殊情况,它和单通道图一样每个像素点都是由一个值来表示,但是这个值只能是0(黑色)255(白色),所以二值化的图的像素点都是非黑即白。
  • 3.三通道

    三通道图,就是我们常说的彩色图,即一个像素点由三个值表示,像素点的颜色就是这个三个值R(红色)G(绿色)B(蓝色)(这三个值都介于0-255之间)叠加形成的。
  • 4.四通道

    四通道图,就是在三通道RGB图的基础上,额外添加了alpha通道,该通道表示该像素点的透明度,alpha=0时,该像素点全透明。

二、灰度转化

在图像处理中我们经常要把彩色图(三通道图)转化为灰度图(单通道图)

三通道转化为单通道

1
GRAY = B*0.114 + G*0.387 + R*0.299

在python中使用Opencv库处理时可以使用

1
cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

单通道转化为三通道

1
B = G = R = GRAY

在python中使用Opencv库处理时可以使用

1
cv2.cvtColor(img, cv2.COLOR_GRAY2BGR)

三、程序实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import cv2

# 读取图像(路径中不能含有中文字符)
img = cv2.imread('test.png')
# 彩色图转化为灰度图
grayImg = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 图像二值化
ret, thresh = cv2.threshold(grayImg, 150, 255, cv2.THRESH_BINARY)
# 展示原图图像
cv2.imshow('RGB', img)
# 展示灰度图图像
cv2.imshow('GRAY', grayImg)
# 展示二值化后的图像
cv2.imshow('BINARY', thresh)
cv2.waitKey(0)

四、效果展示

原图
灰度图
二值化图