PIL中的像素轴转换

时间:2015-09-08 04:13:17

标签: numpy matplotlib python-imaging-library

我正在尝试构建一个程序来自动从绘图图像中提取数据。我几乎拥有它,但是挂起来从像素坐标定义所需的轴。例如,如果正在使用此图像:

enter image description here

我可以找到数据点,但这些点是参考图像大小的,如下所示: enter image description here

进行此转换的最佳方式是什么?

1 个答案:

答案 0 :(得分:0)

这可以通过一些数学来完成。您必须将坐标从像素转换为绘图值,如下所示:

  • 将域名压缩为0 ... 1
  • 镜像(仅适用于y轴,因为像素y坐标从上到下,曲线坐标从下到上)
  • 将域扩展到图上的范围

例如,从图表中取出一个具有像素坐标(80,150)的数据点,我可以看到它在图上的坐标是(24,8.75)。

让我们首先进行y坐标,必须从150到8.75进行映射:

  • 除以图像(200)的y范围:150/200 = 0.75
  • 镜子:1 - 0.75 = 0.25
  • 展开:0.25 * 35(图的y范围)= 8.75

然后是x坐标,不需要镜像:

  • 80/300 = 0.2666
  • 0.2666 * 90 = 24

我不确定轴是否是您图像的一部分,如果它们是,您可能还需要应用一些偏移来解释它们。