簡體   English   中英

如何在灰度中轉換 Cartopy 瓷磚?

[英]How to convert Cartopy tiles in grayscale?

我正在嘗試以灰度顯示通過 Cartopy 的img_tiles模塊下載的img_tiles 那是因為我想覆蓋顏色編碼的衛星數據,並且我希望背景盡可能少分散注意力。

源代碼中記錄的各種desired_tile_form貼提供程序允許在初始化期間使用desired_tile_form 文檔並不完全清楚可以分配給該參數的可能值(只提到了“RGB”),但是在代碼中挖掘了一下我看到它被傳遞給img.convert ,這是一個 PIL.image 方法.

現在PIL 文檔說:

當前版本支持“L”、“RGB”和“CMYK”之間的所有可能轉換。 矩陣參數僅支持“L”和“RGB”。

將彩色圖像轉換為黑白(模式“L”)時,庫使用 ITU-R 601-2 亮度變換:[...]

所以看起來使用“L”模式會將圖像變成黑白,但是在我的情況下這似乎並不奏效。

例子:

標准“RGB”模式:

import matplotlib.pyplot as plt    
import cartopy.crs as ccrs
import cartopy.io.img_tiles as cimgt

figure, ax = plt.subplots(figsize=(15, 10))
request = cimgt.StamenTerrain()
ax = plt.axes(projection=request.crs)
ax.set_extent([94, 102, 0, 6])
ax.add_image(request, 8)
plt.show()

RGB模式

(不工作)黑白模式:

figure, ax = plt.subplots(figsize=(15, 10))
request = cimgt.StamenTerrain(desired_tile_form="L")

ax = plt.axes(projection=request.crs)
ax.set_extent([94, 102, 0, 6])
ax.add_image(request, 8)
plt.show()

體重不工作

我用GoogleTiles()得到了類似的結果。

將瓷磚變成黑白的正確方法是什么?

我不確定它是否是設計使然,但看起來這里使用的是默認顏色圖。 您可以將不同的顏色圖傳遞給add_image()方法,例如:

ax.add_image(request, 8, cmap='gray')

這是 Matplotlib 中可用的顏色圖列表。

暫無
暫無

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

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