SciPy有没有从图像中提取数据的功能?
Does SciPy have any function for extracting data from image?
我必须分析以图像形式给出的数据,例如:
我做的是
- 正在手动擦除轴。
- 通过
imagemagick
将图像转换为(x,y)坐标(收集黑色像素的坐标)
- 调整(x,y)值(根据轴值(而不是像素坐标),然后y方向:在图像中,y坐标从上到下递增)。
- 按 x 对数据进行排序。
- 正在
SciPy
脚本中加载数据。
我想知道是否有一个函数可以在同一个 SciPy
脚本中执行任何步骤 1-4。
由于 SciPy
具有一系列图像识别功能,我想知道是否有将图像转换为创建曲线的黑色像素的 (x,y) 坐标的功能,等等。
首先,使用 sp.misc.imread
或 PIL 加载图像,使其位于我将在下面称为 img
的 numpy 数组中。 (如果是彩色图,用img = np.mean(img, axis=-1)
转成灰度图。那么:
img = img[:-k, :] # Erase axes manually, k is the height of the axis in pixels
y, x = np.where(img == 0) # Find x and y coordinates of all black pixels
y -= y.max() # invert y axis so (0,0) is in the bottom left corner
i = np.argsort(x); x, y = x[i], y[i] # Sort data by x
假设进口:
import numpy as np
import scipy as sp
我必须分析以图像形式给出的数据,例如:
我做的是
- 正在手动擦除轴。
- 通过
imagemagick
将图像转换为(x,y)坐标(收集黑色像素的坐标) - 调整(x,y)值(根据轴值(而不是像素坐标),然后y方向:在图像中,y坐标从上到下递增)。
- 按 x 对数据进行排序。
- 正在
SciPy
脚本中加载数据。
我想知道是否有一个函数可以在同一个 SciPy
脚本中执行任何步骤 1-4。
由于 SciPy
具有一系列图像识别功能,我想知道是否有将图像转换为创建曲线的黑色像素的 (x,y) 坐标的功能,等等。
首先,使用 sp.misc.imread
或 PIL 加载图像,使其位于我将在下面称为 img
的 numpy 数组中。 (如果是彩色图,用img = np.mean(img, axis=-1)
转成灰度图。那么:
img = img[:-k, :] # Erase axes manually, k is the height of the axis in pixels
y, x = np.where(img == 0) # Find x and y coordinates of all black pixels
y -= y.max() # invert y axis so (0,0) is in the bottom left corner
i = np.argsort(x); x, y = x[i], y[i] # Sort data by x
假设进口:
import numpy as np
import scipy as sp