Python Opencv cv2.LUT()如何使用

时间:2014-01-15 11:17:16

标签: python opencv methods

需要在图像的颜色通道上应用一些快速转换。

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

1 个答案:

答案 0 :(得分:3)

您查看了尚未发布的OpenCV版本(3.0版)的文档。我猜您使用的是OpenCV 2.4.8或更低版本。检查this documentation。注意LUT功能的使用差异。在页面顶部,您将看到此文档所属的OpenCV版本。

LUT(srcImage, lookupTable, dstImage)