1

我想创建一个图像解析器,它应读取具有以下内容的图像:
1.直线
2.圆
3.弧
4.文本

我愿意为任何类型的图像格式(jpeg、bmp 或 PDF 格式)提供解决方案。

我看过 QImage 文档。它会为我提供可以以二维矩阵形式存储的像素数据。目前我假设只有黑色和白色两种颜色。白色代表空像素,黑色代表绘制的像素。

所以我会有一个稀疏矩阵

0 1 1 1 0 0 0
0 0 0 0 0 0 1
0 1 1 0 0 0 1
1 0 0 1 0 0 1
1 0 0 1 0 0 0
0 1 1 0 0 0 0

现在我想解码这个矩阵并搜索元素。搜索水平线和垂直线很容易,因为对于每个元素,我只需扫描其相邻的行元素和列元素。

如何搜索其他元素(斜线、圆、弧和可能的文本)?

对于文本,我读到 QImage 具有 text() 函数,但我不知道它适用于哪种类型的输入文件。

还有其他我可以考虑的图书馆吗? 请注意,我只是希望能够读取图像,不需要进行处理。

有没有其他方法可以做到这一点?还是我野心太大?

谢谢

4

3 回答 3

1

看看OpenCV库。

它提供了图像检测和视觉中使用的大多数标准算法,并且其实现的代码质量总体上相当高。

请注意,这通常是一个非常困难的问题,因此您可能需要进行大量研究才能获得满意的解决方案。

于 2013-11-06T08:50:33.493 回答
1

解决这个问题的一种有趣方法是使用机器学习系统,例如神经网络和遗传算法。特别是神经网络非常擅长模式匹配,并且经常被用于手写识别等任务。

如果您搜索它,则有很多关于此的信息。是一篇介绍 NN 的此类文章。

如果您的输入图像始终是黑白的,我认为调整代码示例以使其正常工作不会太难。

于 2013-11-04T10:17:03.600 回答
1

我建议Viola-Jones object detection algorithm

尽管该方法通常在人脸检测上实现 -原始文章讨论了一般对象检测,例如您的文本、圆圈和线条。

于 2013-11-04T10:32:53.653 回答