You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在地图投影轴上添加图像并拉伸适配横竖方向

解决地图投影上图像拉伸变形叠加的方案

OffsetImage确实仅支持平移和等比例缩放,无法处理因地图投影导致的非均匀变形需求。要实现将正方形渐变图贴合到地图上的目标方框,需要通过投影变换+图像变形来完成,以下是具体实现方案(以Python生态为例):

核心逻辑

通过计算图像像素坐标到地图投影坐标的投影变换矩阵,将原始正方形图像变形为适配目标方框的形状,再叠加到地图图层上。

具体步骤

假设你已获取:

  • 目标方框的4个角点坐标(地图投影坐标系下):box_corners = [(x1,y1), (x2,y2), (x3,y3), (x4,y4)]
  • 原始渐变图像:gradient_img(已加载为numpy数组)

1. 定义图像与目标区域的对应点

提取原始正方形图像的4个像素角点:

img_height, img_width = gradient_img.shape[:2]
img_corners = [(0, 0), (img_width, 0), (img_width, img_height), (0, img_height)]

2. 计算投影变换矩阵

使用skimage的投影变换工具计算从图像像素到地图坐标的转换关系:

from skimage.transform import ProjectiveTransform
import numpy as np

# 转换为numpy数组格式
src_points = np.array(img_corners, dtype=np.float32)
dst_points = np.array(box_corners, dtype=np.float32)

# 估算变换矩阵
transform = ProjectiveTransform()
transform.estimate(src_points, dst_points)

3. 对图像执行投影变形

将原始图像变形为适配目标方框的形状:

from skimage.transform import warp

# 输出尺寸可根据地图画布大小调整,确保变形后的图像清晰
warped_gradient = warp(gradient_img, transform.inverse, output_shape=(800, 800))

4. 叠加到地图上

以Matplotlib为例,先绘制地图图层,再叠加变形后的图像:

import matplotlib.pyplot as plt

# 绘制底图(假设map_img为地图图像,map_extent为地图的坐标范围)
plt.imshow(map_img, extent=map_extent)

# 叠加变形后的渐变图,extent匹配目标方框的坐标范围
box_x_min = min(p[0] for p in box_corners)
box_x_max = max(p[0] for p in box_corners)
box_y_min = min(p[1] for p in box_corners)
box_y_max = max(p[1] for p in box_corners)

plt.imshow(warped_gradient, extent=(box_x_min, box_x_max, box_y_min, box_y_max), alpha=0.6)
plt.show()

适配Cartopy地图场景

如果使用Cartopy处理专业地图投影,只需在绘制时指定投影坐标系即可:

import cartopy.crs as ccrs

# 创建带投影的坐标轴
fig, ax = plt.subplots(subplot_kw={'projection': ccrs.PlateCarree()})
# 绘制地图底图
ax.imshow(map_data, transform=ccrs.PlateCarree(), extent=map_extent)
# 叠加变形后的图像,指定对应的地图投影
ax.imshow(warped_gradient, 
          extent=(box_x_min, box_x_max, box_y_min, box_y_max), 
          transform=your_map_projection, 
          alpha=0.6)
plt.show()

内容的提问来源于stack exchange,提问作者Minh Phan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 16:20:04