Python 将matplotlib颜色映射应用于opencv图像

Python 将matplotlib颜色映射应用于opencv图像,python,opencv,matplotlib,colormap,Python,Opencv,Matplotlib,Colormap,我正在尝试将matplotlib中的颜色映射应用于OpenCv图像(我知道我可以使用其他库,但我正在使用OpenCv进行其他操作) 我可以应用它并用以下脚本显示它: import cv2 from matplotlib.pylab import cm def colorize(image, colormap): im = cv2.imread(image) im = cv2.cvtColor(im, cv2.COLOR_BGR2GRAY) colorized = col

我正在尝试将matplotlib中的颜色映射应用于OpenCv图像(我知道我可以使用其他库,但我正在使用OpenCv进行其他操作)

我可以应用它并用以下脚本显示它:

import cv2
from matplotlib.pylab import cm

def colorize(image, colormap):
    im = cv2.imread(image)
    im = cv2.cvtColor(im, cv2.COLOR_BGR2GRAY)
    colorized = colormap(im)
    cv2.imshow("colorized", colorized)
    cv2.waitKey(0)
    cv2.imwrite("colorized.jpg", colorized)

if __name__ == "__main__":
    import sys
    colorize(sys.argv[1], cm.jet)
它做得很好,但是“colorized.jpg”图像是黑色的

我想我必须把它从3色+阿尔法通道转换成3通道图像,但不知道如何转换


有没有办法正确保存
imshow()
调用中显示的图像?

imwrite
要求颜色值在[0255]范围内。但是,colormap返回范围为[0,1]的颜色值。因此,这将得到期望的结果:

cv2.imwrite("colorized.jpg", colorized*255)

你确定吗?它对我有用。你见过乘255的乘法吗?