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

时间:2015-06-25 15:17:08

标签: python opencv matplotlib colormap

我正在尝试将matplotlib中的colormap应用到OpenCv Image(我知道我可以使用其他库,但我正在使用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色+ alpha通道转换为3通道图像,但不知道如何。

有没有办法正确保存imshow()来电中显示的图片?

1 个答案:

答案 0 :(得分:1)

imwrite期望颜色值在[0,255]范围内。但是,colormap返回范围[0,1]中的颜色值。因此,这给出了期望的结果:

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