[英]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()
(不工作)黑白模式:
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')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.