我已经创建了一个iPhone应用程序,可以扫描方格纸页面的图像,然后可以告诉我哪些方块已被黑掉,哪些方块为空。用于识别2D特征的图像处理
我通过从左到右扫描并使用方格纸的线条作为参考。当我遇到一个方格纸线时,我开始寻找黑色,直到我再次点击方格纸线。然后,我继续沿着扫描线继续前进,并完全扫描黑色方块。然后我继续到下一个框。在该行的最后,我开始扫描新行之前忽略了很多像素(因为我已经知道每个盒子的高度)。
这类作品,但有问题。有时我会将图形线条误认为“黑色”。有时,如果图像偏斜,或者整个页面没有统一的光照,那么我的效果不好。
我想要做的是指定一些“对齐”框,然后调整大小并旋转(和倾斜)图片以与这些对齐。然后,我想,一旦我将图像对齐后,我就会知道所有的盒子在哪里,不需要扫描盒子,只需扫描盒子的位置,看它们是否是黑色的。这应该更快,更可靠。如果我要操作来自相机的图像,我会更灵活地要求用户对齐图片以匹配对齐标记,而不必自己对齐图像。
鉴于这是我的第一个图像处理项目,我觉得我正在重新发明轮子。我想就如何做到这一点以及是否利用OpenCV等库提出建议。
我附上了一张类似于我想处理的图像。我正在寻找有大量黑色标记的所有方块的列表,即A8,C4,E7,G4,H1,J9。
需要注意的问题的:
- 图像的光覆盖范围可能不理想,但应该是在图像相对一致的(即无阴影)
- 所有的广场可能是空的或全黑,并且该算法需要能够确定图像可能偏斜或围绕任何轴旋转。围绕z轴旋转可能很容易修复。围绕x或y轴可能会有旋转,使图像的一侧比另一侧宽。但是,如果我从相机中实时扫描图像,我可以要求用户将对齐标记与屏幕上的标记对齐。如何最好地确保对齐以给用户提供适当的反馈?只要检查以确保4个角落是黑暗的,当相机指向黑色表面时可能会导致误报。
- 并非每一个方格都会同样或一致地变黑,但我认为会有足够的黑色使它对人眼无可怀疑。
- 蓝色网格可能很有用,但有些情况下黑色标记可能与蓝色网格重叠。我认为虚拟网格可能比依靠印刷网格更好。我认为使用对齐标记来对齐图像可以实现精确的虚拟网格布局。然后可以对每个网格框的内容进行采样,以查看它是否主要是黑色,与从左到右的扫描相比,不是?这是另一幅在网格上有更多标记的图像。在这张图片中,除了之前在A8,C4,E7,G4,H1,J9中的标记之外,我标记了E2,G8和G9以及I4和J4,您可以看到蓝色网格是如何被遮挡的。
- 这是我这个项目的第一阶段。最终,我想扩展这种算法,以便能够处理至少几百个插槽和可能不同的颜色。
请发表几个实际的图片。 – Maurits 2012-03-19 21:29:36
@Maurits补充说。感谢您的要求。 – mahboudz 2012-03-19 22:06:51
算法可以使用蓝色网格吗? – Maurits 2012-03-20 22:03:48