我想创建一个图像解析器,它将读取具有以下内容的图像:
1.直线
2.圈子
3.弧形
4.文字
我愿意为任何类型的图片格式(jpeg,bmp或PDF格式)提供解决方案。
我见过QImage文档。它应该为我提供像素数据,我可以以2D矩阵的形式存储。目前我将假设只有两种颜色黑色和白色。白色表示空像素,黑色表示绘制的像素。
所以我会有一个像
这样的稀疏矩阵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()函数,但我不知道它的输入文件是什么类型的。
我可以考虑其他图书馆吗? 请注意,我只是希望能够阅读图片,不需要进行处理。
我还有其他方法可以做到这一点吗?还是我太野心了?
由于
答案 0 :(得分:1)
解决这个问题的一个有趣方法是使用机器学习系统,例如神经网络和遗传算法。特别是神经网络在模式匹配方面非常擅长,并且经常被看作用于手写识别等任务。
如果您搜索它,有很多相关信息。 Here's一篇这样的文章,是对NN的介绍。
如果您的输入图像总是黑白的,我认为调整代码示例以使其工作不会太困难。
答案 1 :(得分:1)
我建议 Viola-Jones object detection algorithm 。
虽然这种方法通常是在人脸检测上实施的,但original article讨论了一般物体检测,例如文字,圆圈和线条。
答案 2 :(得分:1)