簡體   English   中英

Matplotlib:imshow中的cmap的功能是什么?

[英]Matplotlib : What is the function of cmap in imshow?

我正在嘗試使用python學習opencv並遇到以下代碼:

import cv2
import numpy as np
from matplotlib import pyplot as plt

BLUE = [255,0,0]

img1 = cv2.imread('opencv_logo.png')
replicate = cv2.copyMakeBorder(img1,10,10,10,10,cv2.BORDER_REPLICATE)
reflect = cv2.copyMakeBorder(img1,10,10,10,10,cv2.BORDER_REFLECT)
reflect101 = cv2.copyMakeBorder(img1,10,10,10,10,cv2.BORDER_REFLECT_101)
wrap = cv2.copyMakeBorder(img1,10,10,10,10,cv2.BORDER_WRAP)
constant= cv2.copyMakeBorder(img1,10,10,10,10,cv2.BORDER_CONSTANT,value=BLUE)

plt.subplot(231),plt.imshow(img1,'gray'),plt.title('ORIGINAL')
plt.subplot(232),plt.imshow(replicate,'gray'),plt.title('REPLICATE')
plt.subplot(233),plt.imshow(reflect,'gray'),plt.title('REFLECT')

plt.subplot(234),plt.imshow(reflect101,'gray'),plt.title('REFLECT_101')
plt.subplot(235),plt.imshow(wrap,'gray'),plt.title('WRAP')
plt.subplot(236),plt.imshow(constant,'gray'),plt.title('CONSTANT')

plt.show()

來源: http : //docs.opencv.org/master/doc/py_tutorials/py_core/py_basic_ops/py_basic_ops.html#exercises

plt.imshow(img1,'gray')有什么作用? 我嘗試搜索Google,但我唯一能理解的是,“灰色”參數是彩色地圖。 但是我的圖像(網站上有圖片。請參閱鏈接)沒有以灰度顯示。 我嘗試刪除第二個參數。 因此,代碼就像plt.imshow(img1)。 它執行。 圖像與以前相同。 那么第二個參數“灰色”是做什么的呢? 有人可以向我解釋所有這些嗎? 任何幫助表示贊賞。 謝謝。

PS。 我是Matplotlib的新手

img1具有形狀(M,N,3)(M,N,4)img1中的值將解釋為RGB或RGBA值。 在這種情況下,將忽略cmap。 根據help(plt.imshow) docstring

cmap: ~matplotlib.colors.Colormap ,可選,默認:無

如果為None,則默認為rc image.cmap值。 X具有RGB(A)信息時,將忽略cmap

但是,如果img是形狀(M,N)的數組,則cmap控制用於顯示值的顏色圖。


import numpy as np
import matplotlib.pyplot as plt
import mpl_toolkits.axes_grid1 as axes_grid1
np.random.seed(1)

data = np.random.randn(10, 10)

fig = plt.figure()
grid = axes_grid1.AxesGrid(
    fig, 111, nrows_ncols=(1, 2), axes_pad = 0.5, cbar_location = "right",
    cbar_mode="each", cbar_size="15%", cbar_pad="5%",)

im0 = grid[0].imshow(data, cmap='gray', interpolation='nearest')
grid.cbar_axes[0].colorbar(im0)

im1 = grid[1].imshow(data, cmap='jet', interpolation='nearest')
grid.cbar_axes[1].colorbar(im1)
plt.savefig('/tmp/test.png', bbox_inches='tight', pad_inches=0.0, dpi=200,)

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM