Python实现像素位置值到图像坐标的转换方法问询
像素位置到图像坐标的转换方案
核心逻辑
图像的常规坐标系以左上角为原点(0,0),x轴向右递增,y轴向下递增。你提供的左下角/右上角像素位置,应该是基于「左下角为原点、y轴向上」的坐标系,转换只需完成y轴方向的翻转即可。
方法一:手动计算(无需额外库)
假设图像尺寸为(width, height)(width是横向像素数,height是纵向像素数),转换公式如下:
- 原坐标系下的点
(x, y)→ 图像坐标系下的点(x_img, y_img):x_img = x # x轴方向一致,无需调整 y_img = height - y # y轴方向反转,用图像高度偏移 - 对应你给出的示例点:
原左下角(204.55, 196.33)→ 图像坐标(204.55, height - 196.33)
原右上角(314.56, 294.77)→ 图像坐标(314.56, height - 294.77)
方法二:用Pillow库辅助实现
Pillow是Python常用的图像处理库,可快速获取图像尺寸并完成转换:
- 安装库:
pip install pillow - 示例代码:
from PIL import Image # 加载图像并获取尺寸 img = Image.open("你的图像文件路径") img_width, img_height = img.size # 原坐标点 orig_left_bottom = (204.55, 196.33) orig_right_top = (314.56, 294.77) # 转换为图像坐标系 img_left_bottom = (orig_left_bottom[0], img_height - orig_left_bottom[1]) img_right_top = (orig_right_top[0], img_height - orig_right_top[1]) print(f"图像坐标系左下角点: {img_left_bottom}") print(f"图像坐标系右上角点: {img_right_top}")
扩展说明
如果你的像素位置是其他自定义坐标系,只需明确两个坐标系的原点位置和轴方向,通过简单的平移、翻转等线性变换就能完成转换,完全不需要GDAL/Rasterio这类GIS库。
内容的提问来源于stack exchange,提问作者mdl518
相关产品推荐
相关产品推荐

