我想从这张研究论文的图像中提取所有的图表/图形。有什么方法可以做到这一点吗?
我只想要图表部分,有什么方法可以裁剪出那部分吗?
回答:
要仅提取图表/图形,这里有一个使用OpenCV的方法:
-
获取二值图像。 加载图像,转换为灰度,并使用Otsu阈值法获取二值图像。
-
连接文本轮廓。 利用文本按段落结构排列的观察结果,我们可以使用水平轮廓进行膨胀操作,将单个单词连接成一个轮廓。
-
移除非图表轮廓。 我们查找轮廓,并使用纵横比和轮廓面积进行过滤。通过填充轮廓,有效地移除非图表轮廓。
-
形成单一边界框。 遍历剩余的轮廓,确定边界框的坐标
-
提取ROI。 使用Numpy切片裁剪/提取图表。
以下是每一步的可视化展示:
阈值图像
使用水平核进行膨胀
过滤以移除非图表轮廓
检测到的图表边界框
提取的ROI
注意: 这种方法假设图像中只有一个图表。如果有多个图表,你可以删除步骤#4以获取多个ROI,并将每个ROI保存为单独的图像。我相信这将是一个简单的更改 🙂
代码