首页 > 解决方案 > 将 MatplotLib 或自定义颜色图应用于 OpenCV 图像

问题描述

OpenCV 的颜色图数量有限。MatplotLib 有更多的颜色图,但将这些颜色图应用于给定的 OpenCV 图像并不简单。使用 Python API 时,如何将下面页面中的 MatplotLib 颜色图应用于 OpenCV 图像?这类似于将自定义颜色图应用于给定图像。

https://matplotlib.org/examples/color/colormaps_reference.html

标签: pythonopencvmatplotlibvisualization

解决方案


对于 Python >= 2.7,cmappy以一种方便的方式封装了这个功能。安装它:

蟒蛇 2.7:

pip install cmapy

Python 3.x:

pip3 install cmapy

或者,对于 Anaconda(来自conda-forge):

conda install -c conda-forge cmapy 

并像这样使用它:

import cv2
import matplotlib.pyplot as plt
import cmapy

# Read image.
img = cv2.imread('imgs/woman.png')

# Colorize.
img_colorized = cv2.applyColorMap(img, cmapy.cmap('viridis'))

# Display
plt.imshow(img_colorized)
plt.show()

不同的颜色图给出了这样的结果:

在此处查看所有可用的颜色图。

免责声明:我写了 cmapy (因为我需要这个功能用于另一个项目),并且在内部,它与其他答案几乎相同。


推荐阅读