我有一张几乎是黑白的图像,它在白色背景上有一个黑色方 block 。我如何确定这个正方形的坐标?
它实际上是扫描的文档,这些方 block 用于扫描图像的校准和定位。我想我需要人工智能和神经网络来实现这一点,但我宁愿使用更简单的东西。我只需要该正方形内像素的坐标。
我可以使用标准 Java API 逐像素读取图像,但这似乎是幼稚的解决方案。
谢谢。
最佳答案
除非您想使用使用相当复杂算法的图像处理框架,否则您必须逐像素读取图像。但是这里有一些技巧可以让任务变得更简单吗?
矩形有多大?如果您知道它是纯白色且至少 10 像素宽,则可以将图像缩小十分之一。现在您只需要寻找单个白色(或非常浅灰色)的像素。或者,您只能读取每 10 个像素。
在开始搜索之前裁剪图像,即向 Java 图像 API 询问一行中的所有像素,然后检查它们是否都相同。如果是这样,那么您可以忽略该行。
当然,现实很少如此尖锐。因此,您需要在图像上运行一个过滤器,如果该像素的 8 个相邻像素中至少有 3 个为白色,则该像素将变为白色;如果超过 6 个相邻像素为黑色,则该过滤器将其变为黑色。
如果可以的话,从灰色图像开始,然后自己将其转换为黑白图像。这样,您就可以根据需要优化结果(例如,将剪切设置为 60 或 80,而不是 128)。
关于java - 如何确定图像中元素的坐标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3583040/