SciPy有没有从图像中提取数据的功能?

Does SciPy have any function for extracting data from image?

我必须分析以图像形式给出的数据,例如:

我做的是

  1. 正在手动擦除轴。
  2. 通过imagemagick将图像转换为(x,y)坐标(收集黑色像素的坐标)
  3. 调整(x,y)值(根据轴值(而不是像素坐标),然后y方向:在图像中,y坐标从上到下递增)。
  4. 按 x 对数据进行排序。
  5. 正在 SciPy 脚本中加载数据。

我想知道是否有一个函数可以在同一个 SciPy 脚本中执行任何步骤 1-4。

由于 SciPy 具有一系列图像识别功能,我想知道是否有将图像转换为创建曲线的黑色像素的 (x,y) 坐标的功能,等等。

首先,使用 sp.misc.imread 或 PIL 加载图像,使其位于我将在下面称为 img 的 numpy 数组中。 (如果是彩色图,用img = np.mean(img, axis=-1)转成灰度图。那么:

  1. img = img[:-k, :] # Erase axes manually, k is the height of the axis in pixels
  2. y, x = np.where(img == 0) # Find x and y coordinates of all black pixels
  3. y -= y.max() # invert y axis so (0,0) is in the bottom left corner
  4. i = np.argsort(x); x, y = x[i], y[i] # Sort data by x

假设进口:

import numpy as np
import scipy as sp