python - 如何为要使用 matplotlib 显示的照片选择颜色类型?
问题描述
我想知道是否可以将其更改[cmap="gray"]
为其他颜色,例如“cmap=yellow or blue”,但它没有那样工作。我认为库中已经设置了一些颜色类型,因为我没有定义灰色。但是当我放 时cmap="gray"
,它以灰色打印图片。有人可以为我解释一下吗?提前感谢您的帮助^^
------下面是我正在处理的代码-----[它在我要问的“第 3 行” ]
#[line 1]
import cv2
import numpy as np
from matplotlib import pyplot as plt
#[line 2]
image = cv2.imread("images/cybertruck.jpg", cv2.IMREAD_GRAYSCALE)
#[line 3]
plt.imshow(image, cmap="gray")
plt.axis("off")
plt.show()
解决方案
Matplotlib 对现有颜色图有很好的概述。对于黑白图像,任何“顺序颜色图”都可以。请注意,有些人的黑暗和光明是相反的。在名称末尾附加“_r”将反转它们。例如,要查看负片图像,请选择cmap="gray_r"
。
请注意,如果您想在cmap="gray"
. 向下滚动文档页面以查看它们的外观,或尝试使用您自己的图像。
生成许多示例的一些代码:
import cv2
from matplotlib import pyplot as plt
from math import ceil
cmap_list1 = ['viridis', 'plasma', 'inferno', 'magma', 'cividis']
cmap_list2 = ['Greys', 'Purples', 'Blues', 'Greens', 'Oranges', 'Reds',
'YlOrBr', 'YlOrRd', 'OrRd', 'PuRd', 'RdPu', 'BuPu',
'GnBu', 'PuBu', 'YlGnBu', 'PuBuGn', 'BuGn', 'YlGn']
cmap_list3 = ['binary', 'gist_yarg', 'gist_gray', 'gray', 'bone', 'pink',
'spring', 'summer', 'autumn', 'winter', 'cool', 'Wistia',
'hot', 'afmhot', 'gist_heat', 'copper']
cmap_list4 = ['ocean', 'gist_earth', 'terrain', 'gist_stern',
'gnuplot', 'gnuplot2', 'CMRmap', 'cubehelix', 'brg',
'gist_rainbow', 'rainbow', 'jet', 'nipy_spectral', 'gist_ncar']
image = cv2.imread("test_image.jpg", cv2.IMREAD_GRAYSCALE)
# cmap_list = cmap_list1 + cmap_list2
cmap_list = cmap_list3 + cmap_list4
try_reversed_map = False
ncols = 7
nrows = int(ceil(len(cmap_list) / ncols))
if nrows <= 1: nrows = 2 # subplots returns single list instead of matrix when nrows=1
fig, axs = plt.subplots(ncols=ncols, nrows=nrows, figsize=(14, 4 * nrows))
for i in range(nrows):
for j in range(ncols):
ax = axs[i, j]
ax.axis("off")
if i * ncols + j < len(cmap_list):
cmap = cmap_list[i * ncols + j]
if try_reversed_map:
cmap += "_r"
ax.imshow(image, cmap=cmap)
ax.set_title(cmap)
plt.show()
推荐阅读
- java - Spring Boot 总是显示 @Value 注释的值为 null
- javascript - 自定义复选框只反应一个检查
- java - 座位选择布局如redbus
- java - 为什么从后台删除应用程序后前台服务不起作用?
- flutter - 使用状态小部件访问状态类的方法?
- java - 如何在 Firebase 中获取孩子的数据
- c# - _AppDomainPtr Load_3 方法示例?
- voip - Freeswitch 1.8 和tone_stream 的播放
- python - 如何计算 DecisionTreeClassifier 的 0-1 确定性分数?
- javascript - 如何防止javascript array.push中的重复项