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)