输入 A 图像是完整的 RGB 图像,输出 B 图像是相同的图像,但具有“调整”的 R 值
我需要将 RGB 值重新缩放到 128 到 255 之间,以便将小于 128 的较小值缩放到上限值。
RMAX = 127
img = cv2.imread(filename) # load img
blue, green, red = cv2.split(img) # get single color
red = red*RMAX/255+128 # scale the color as I need
但这不断得到错误的值:
如果红色值为 255 = 255*127/255+128 应该输出 255 但返回 128
为什么会这样?
编辑:
颜色值不需要每次都重新计算,最好在开始的时候准备一个值范围的数组,然后用数组中的值替换当前值?
ValuesForRed = [0]*255
for i in range(0,255):
ValuesForRed[i]=i*127 / 255 + 128
如何替换数组中的值现在是问题......
应该用对应的索引替换对应的值
i.e. red[45]= 0
ValuesForRed[0] = 128
red[45]= 128