需要在图像的颜色通道上应用一些快速转换。
1)我在列表中存储了相应的输出值:
ListaVred = [0]*255
for i in range(0,255):
ListaVred[i]=i*127 / 255 + 128
2)我从图像
获得0到255的颜色输入值3)应该在图像中用输出
替换输入值i.e. red[45]= 0
ListaVred0] = 128
red[45]= 128
我看过cv2.LUT(src,dst)函数,但不确定它的用法, http://docs.opencv.org/trunk/modules/core/doc/operations_on_arrays.html#cv2.LUT
cv2.LUT(ListaVred,red)
TypeError: src is not a numpy array, neither a scalar
ListaVred = np.array(ListaVred)
cv2.LUT(ListaVred,red)
cv2.error: /build/opencv-Ai8DTy/opencv-2.4.6.1+dfsg/modules/core/src/convert.cpp:1195: error: (-215) (lutcn == cn || lutcn == 1) && lut.total() == 256 && lut.isContinuous() && (src.depth() == CV_8U || src.depth() == CV_8S) in function LUT
答案 0 :(得分:3)
您查看了尚未发布的OpenCV版本(3.0版)的文档。我猜您使用的是OpenCV 2.4.8或更低版本。检查this documentation。注意LUT功能的使用差异。在页面顶部,您将看到此文档所属的OpenCV版本。
LUT(srcImage, lookupTable, dstImage)