簡體   English   中英

plt.imshow(np.squeeze(x_train[3]), cmap=“灰色”); 這個命令是什么意思?

[英]plt.imshow(np.squeeze(x_train[3]), cmap=“gray”); what does this command mean?

我正在研究圖像的分類。 我遇到了這一行,但我無法理解其含義。

plt.imshow(np.squeeze(x_train[3]), cmap=“gray”); 

你能給我解釋一下這條線嗎?

這實際上取決於您的變量x_train包含的內容。 你沒有給你的代碼提供上下文。 我可以推斷出x_train是一個 numpy 數組,它在第四個元素或行處被索引。

plt.imshow是來自 matplotlib 庫的 function 庫,它接受表示圖像的數組並將其繪制到屏幕上。 該數組通常是表示像素行和列的 2D 數組或 3D 數組,其中每個像素的特征是 RGB 的 3 個值或 RGBA 的 4 個值(A 代表 alpha 並表示透明度)。

cmap="gray"是傳遞給plt.imshow的關鍵字參數,它負責將特定顏色圖映射到您作為第一個參數傳遞的數組中找到的值。 如果您 google matplotlib 顏色圖,您可以查找顏色圖。 由於您的代碼中使用了灰色顏色圖,因此您的數組很可能是代表灰度圖像的二維數組。 在這種情況下,每個像素僅由一個值(通常在 0 到 255 之間)描述,該值在從黑色 (0) 到白色 (255) 的范圍內指示其顏色。 如果您將 3D 數組(即彩色圖像)傳遞給 imshow,matplotlib 將自動將第三維中的值解釋為 RGB 值並正確顯示圖像。 但是,如果您傳遞一個二維數組(可能是這種情況),matplotlib 會將 map 值傳遞給顏色圖,默認情況下是“viridis”。 這將產生綠色/黃色/藍色圖像。 因此,有必要告訴 matplotlib 到 map 它到一個灰度顏色圖。

因此,我假設x_train是一個 numpy 數組,具有兩個以上可能包含多個圖像的維度。 當您在索引 3 處對其進行索引時,您將獲得包含要顯示的圖像的值的數組的一部分。 這個數組似乎比實際使用的維度更多,這就是為什么np.squeeze用於減少不必要的維度。 舉個例子:

import numpy as np
test_array = np.array([[1, 2, 3]])
np.squeeze(test_array)
>>> array([1, 2, 3])

從您提供的少量信息中,我只能告訴您這些。 下次考慮為您的問題提供更多背景信息。

暫無
暫無

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

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