我正在尝试将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()
调用中显示的图像?
发布于 2015-06-25 22:52:43
imwrite
期望颜色值在0,255范围内。然而,颜色映射在0,1范围内返回颜色值。因此,这提供了所需的结果:
cv2.imwrite("colorized.jpg", colorized*255)
https://stackoverflow.com/questions/31054352
复制相似问题