任务介绍
我们在进行RGB图像转灰度图时可以使用Opencv中的库函数imread,需要将参数flags设置为0,cv2.imread(filename, 0)即可完成以灰度图像的方式读取filename图片。
我们也可以通过cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)的方式将img图片转化为对应的灰度图。
在此,我并不使用上述方式,而是选择使用灰度图像和RGB 彩色图像之间的关系完成对应的转化
公式介绍
RGB图像有R、G、B三个通道,分别获得三个通道的值后使用下述公式可以将一个彩色图像转化为灰度图像
关键代码
for i in range(img.shape[0]):
for j in range(img.shape[1]):
pro_img[i, j] = int(img[i, j, 0] * 0.11 + img[i, j, 1] * 0.59 + img[i, j, 2] * 0.3)
效果展示
下图为两种方式的对比,前者为cv2.imread(img, 0)的结果,后者为利用公式计算得到的结果,据图可知二者并无明显的差别。