Skip to main content
 首页 » 编程设计

Python:如何使用 matplotlib 将图像像素投影到 map 上

2025年05月04日28think

我正在尝试从图像中获取像素并将它们绘制到 Blue Marble map 上。我已经想出如何将它们投影到 map 上。当每个像素投影到 map 上时,我一直无法弄清楚如何为每个像素着色。
我一直在使用 plot() 方法,当我单独执行它们时,终端会自动终止我的进程,因为它必须绘制 ~65000 次。我可以使用另一种方法吗?有没有办法在这些方法中的任何一种中使用像素颜色数组? PIL 可以吗?

rgb 是具有 3 元组的颜色数组,即。 (14,0,0) 等。full_x 和 full_y 是一个二维数组,其中它是 # of pixels x 5 个不同的 x,y 点(在蓝色大理石图像上形成像素形状)

这是我尝试做一系列颜色的地方:

for i in range(len(rgb)): 
    hexV = struct.pack('BBB',*rgb[i]).encode('hex') 
    hexA.append('#' + hexV) 
 
m.plot(full_x, full_y, color=hexA) 

我也试过:

for i in range(len(rgb)): 
    hexV = struct.pack('BBB',*rgb[i]).encode('hex') 
    #hexA.append('#' + hexV) 
    hexA = '#' + hexV 
    m.plot(full_x[i], full_y[i], color=hexA[i]) 

这是我尝试单独处理每个像素的地方,然后进程被自动终止。

任何帮助将不胜感激。提前致谢。

请您参考如下方法:

对于看到此问题并遇到相同问题的任何人:

显然,您只需要使用 scatter 即可。为了映射具有多种颜色的像素/任何其他点,请使用带有 x 数组、y 数组和像素颜色数组的散点图。