cv.LUT(src, lut, dst)
参数 | 说明 |
---|---|
src | 表示原始图像。 |
lut | 表示查找表的地址,对于多通道图像的查找,它可以有一个通道,也可以与原始图像有相同的通道。 |
dst | 表示输出图像。 |
查找表优势,预计算,空间换时间,避免重复计算,节约计算时间。
cv.applyColorMap(src, colormap[,dst])
参数 | 说明 |
---|---|
src | 表示输入图像。 |
colormap | 表示颜色表。 |
dst | 表示输出图像。 |
colormap为颜色图模式,可以传入整数0~21对应各种不同的颜色图,或者用cv2.COLORMAP_AUTUMN(等价于0)、cv2.COLORMAP_BONE(等价于1)等方式传入,OpenCV源码头文件中定义的22种模式如下:
ColormapTypes = (
'COLORMAP_AUTUMN', # 0
'COLORMAP_BONE', # 1
'COLORMAP_JET', # 2
'COLORMAP_WINTER', # 3
'COLORMAP_RAINBOW', # 4
'COLORMAP_OCEAN', # 5
'COLORMAP_SUMMER', # 6
'COLORMAP_SPRING', # 7
'COLORMAP_COOL', # 8
'COLORMAP_HSV', # 9
'COLORMAP_PINK', # 10
'COLORMAP_HOT', # 11
'COLORMAP_PARULA', # 12
'COLORMAP_MAGMA', # 13
'COLORMAP_INFERNO', # 14
'COLORMAP_PLASMA', # 15
'COLORMAP_VIRIDIS', # 16
'COLORMAP_CIVIDIS', # 17
'COLORMAP_TWILIGHT', # 18
'COLORMAP_TWILIGHT_SHIFTED', # 19
'COLORMAP_TURBO', # 20
'COLORMAP_DEEPGREEN' # 21
)
各种ColormapTypes对应的色彩是下图这样的,有各种春夏秋冬四季风格、冷热风格等等:
import cv2 as cv
ColormapTypes = (
'COLORMAP_AUTUMN', # 0
'COLORMAP_BONE', # 1
'COLORMAP_JET', # 2
'COLORMAP_WINTER', # 3
'COLORMAP_RAINBOW', # 4
'COLORMAP_OCEAN', # 5
'COLORMAP_SUMMER', # 6
'COLORMAP_SPRING', # 7
'COLORMAP_COOL', # 8
'COLORMAP_HSV', # 9
'COLORMAP_PINK', # 10
'COLORMAP_HOT', # 11
'COLORMAP_PARULA', # 12
'COLORMAP_MAGMA', # 13
'COLORMAP_INFERNO', # 14
'COLORMAP_PLASMA', # 15
'COLORMAP_VIRIDIS', # 16
'COLORMAP_CIVIDIS', # 17
'COLORMAP_TWILIGHT', # 18
'COLORMAP_TWILIGHT_SHIFTED', # 19
'COLORMAP_TURBO', # 20
'COLORMAP_DEEPGREEN' # 21
)
def use_system_lut_demo():
img = cv.imread('./images/butterfly.jpg')
index = 0
while True:
if index >= len(ColormapTypes):
break
dst = cv.applyColorMap(img, index)
cv.imshow('system_lut_window', dst)
cv.waitKey(1000)
index = index + 1
cv.destroyAllWindows()
if __name__ == "__main__":
use_system_lut_demo()
import cv2 as cv
import numpy as np
def use_custom_lut_demo():
img = cv.imread('./images/butterfly.jpg')
lut3 = np.zeros((256,1,3), dtype=np.uint8)
for i in range(256):
lut3[i,0] = 255 - i
dst = cv.LUT(img, lut3)
cv.imshow('custom_lut_window', dst)
cv.waitKey(0)
cv.destroyAllWindows()
if __name__ == "__main__":
use_custom_lut_demo()