当前位置:   article > 正文

python获取图片曲线数据_从图片中提取曲线坐标数据

从图片中提取曲线坐标数据

0.引言

在读文献的时,经常遇到这样的情况:文章里提出的方法好有趣啊,好想拿文中用的数据来试试看看能不能得到相近的结果,可是文中只有根据原始数据绘制的曲线图,没有数据。如下图所示。

此时,如果能从文中把这幅图截取下来,输入到一个函数中去,最后能返回从图片中提取到的曲线的坐标数据,岂不美哉。

这便是本文的工作。

1.思路详解与分析

1.1准备待提取数据的曲线图片

将待提取数据的曲线的图片(如.jpg格式图片),利用imread输入到matlab中。

1.2曲线图片预处理与数据转换

曲线图片预处理步骤的主要工作包含如下:

(1)图像二值化

将输入图像进行二值化处理,但分割得到的结果并不全为数据,其中可能还包括坐标轴等干扰点需要去除。

(2)获取从图片像素到曲线坐标的定标数据

首先,通过ginput()手动从图片中提取到两个像素点,这两个点分别为曲线坐标框的左上角和右下角。

此时,便获得了曲线在图片上的像素范围

[x_index_min, x_index_max] & [y_index_min, y_index_max]

然后,手动输入实际曲线的数据坐标范围 [x_min, x_max] & [ymin, y_max]. 如下所示。

此时,一方面得到了像素坐标,一方面得到了实际坐标。接下来便利用这对数据,将图片中全部的像素坐标转换到实际坐标。

最终,得到了由图片提取到的数据散点图,如下

可以看到,此时得到的结果,虽然曲线与所需要的相近,但曲线外的部分,如坐标轴框、坐标轴刻度等也被转换成了数据,还需要进一步的处理。

1.3数据的进一步处理并得到最终曲线

这一步的主要工作是在数据中除去曲线之外的部分(包括坐标轴框、坐标轴刻度等);以及解决一个x数据对应多个y数据的情况。

显然,坐标轴在整幅数据中,均处于边界位置,因此&

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/680072
推荐阅读
相关标签
  

闽ICP备14008679号