引入
问题引入,考虑以下几个问题:
Q1. 一个3通道像素p的BGR分量(8bit表示)值均相同,那么这个像素是什么颜色的?
Q2. 该像素p加上自己,即,像素p的各个通道值翻倍,那么这个像素的颜色会变成什么样?
加法
假设p的BGR值均为100,即p(100, 100, 100)。那么,我们生成一幅100*100大小的3通道图像,其中每个像素均与p相同。
# 导入库
import numpy as np
import cv2
# 构造图像,shape为(100, 100, 3) ,每个像素值均为(100, 100, 100)
gray = np.ones((100, 100, 3), dtype=np.uint8) * 100
# 显示图像
cv2.imshow("Gray", gray)
cv2.waitKey(0)
执行脚本
python arithmetic.py
没错,是一幅灰度图像。
我们可以继续尝试,加入如下代码。
# 构造一幅(50, 256, 3) 灰度条
# 灰度条第一列像素
bar = np.ones((50,1,3), dtype=np.uint8) * 0
# 迭代生成其它列
for i in np.arange(1, 256 ):
col = np.ones((50, 1, 3), dtype=np.uint8) * i</