输入图像是完整的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