Python 有没有办法自动识别折线图在照片中的位置并将其数字化?

Python 有没有办法自动识别折线图在照片中的位置并将其数字化?,python,python-3.x,image-processing,digitization,Python,Python 3.x,Image Processing,Digitization,我有以下问题,我们应该数字化不同城市潮位的历史记录。数据是以照片的形式出现的,所有这些照片看起来都像这样: 折线图在所有年份都保持不变,即它们都具有相同的轴、标签、网格等。只有输入的值和曲线每天不同 目前的主要问题是识别图中的折线图,然后识别其中的曲线,其中一些曲线(如图所示)非常薄或非常厚 我想有一个算法,可以识别图像中的图表,这样我就可以集中精力读取值。解决方案应该是Python。有什么想法吗?首先,您可以选择图表上的网格。试试这个: import cv2 image = cv2.imr

我有以下问题,我们应该数字化不同城市潮位的历史记录。数据是以照片的形式出现的,所有这些照片看起来都像这样:

折线图在所有年份都保持不变,即它们都具有相同的轴、标签、网格等。只有输入的值和曲线每天不同

目前的主要问题是识别图中的折线图,然后识别其中的曲线,其中一些曲线(如图所示)非常薄或非常厚


我想有一个算法,可以识别图像中的图表,这样我就可以集中精力读取值。解决方案应该是Python。有什么想法吗?

首先,您可以选择图表上的网格。试试这个:

import cv2

image = cv2.imread('dia.jpg')
image=cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)
se=cv2.getStructuringElement(cv2.MORPH_RECT , (3,3))
close=cv2.morphologyEx(image, cv2.MORPH_CLOSE, se)
close=cv2.absdiff(close, image)
cv2.normalize(close, close,  0, 255, cv2.NORM_MINMAX, cv2.CV_8UC1)
grid=cv2.bitwise_not(close)
cv2.imshow('grid', grid)  
cv2.imwrite('grid.png',grid)
结果: