python - 将 MatplotLib 或自定义颜色图应用于 OpenCV 图像
问题描述
OpenCV 的颜色图数量有限。MatplotLib 有更多的颜色图,但将这些颜色图应用于给定的 OpenCV 图像并不简单。使用 Python API 时,如何将下面页面中的 MatplotLib 颜色图应用于 OpenCV 图像?这类似于将自定义颜色图应用于给定图像。
https://matplotlib.org/examples/color/colormaps_reference.html
解决方案
对于 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 (因为我需要这个功能用于另一个项目),并且在内部,它与其他答案几乎相同。
推荐阅读
- css - 如何在 sass 中使用 map-deep-get
- python - 当维度可变时,在 n 维 Numpy 数组中引用元素
- firebase - 识别已在本地保存但未在 Firestore 中同步的数据
- javascript - 当我尝试运行节点 js 文件时,出现 ReferenceError: XMLHttpRequest is not defined
- android - 如何在 Android 中使用 androidx.activity.result.contract.ActivityResultContract$SynchronousResult?
- python - 我怎样才能像这个例子一样打印这些行?
- ios - 快速使用 UIDocumentPickerViewController(documentTypes:)
- python - 数组中复数的大小
- azure - Azure Blob 更改源缺少 blob 追加事件
- ios - 在 UITableView 中默认启用重新排序控件而不处于编辑模式