Python Opencv cv2.LUT(), как использовать

Необходимо применить быстрое преобразование цветовых каналов изображения.

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(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 ответ

Решение

Вы изучили документацию еще не выпущенной версии OpenCV (версия 3.0). Я предполагаю, что вы используете OpenCV 2.4.8 или ниже. Проверьте эту документацию. Обратите внимание на различия в использовании функции LUT. В верхней части страницы вы увидите версию OpenCV, к которой относится данная документация.

LUT(srcImage, lookupTable, dstImage)
Другие вопросы по тегам