BuffereImage Java中的简单方形识别
我目前正在为学校的机器人俱乐部开发一个图像识别软件,其中一个部分真的让我感到困惑:形状识别。我需要能够检测到这个图像中的方块,然后才能尝试检测竞技场中的形状 我查了一些像JavaCV这样的库,但我找不到真正适合我口味的东西。作为参考,这里是我试图确定形状的图像BuffereImage Java中的简单方形识别,java,image-recognition,Java,Image Recognition,我目前正在为学校的机器人俱乐部开发一个图像识别软件,其中一个部分真的让我感到困惑:形状识别。我需要能够检测到这个图像中的方块,然后才能尝试检测竞技场中的形状 我查了一些像JavaCV这样的库,但我找不到真正适合我口味的东西。作为参考,这里是我试图确定形状的图像 我做了一些与您的任务类似的事情,但我需要识别物体的类别(电阻器、电容器等),以及它们在真实黑白照片中的边界: 基本上,方法是这样的: 预处理-校正对比度、亮度、腐蚀、膨胀、中值等-此步骤可适用于整个/部分照片 分割-现在找到照片中可能有
我做了一些与您的任务类似的事情,但我需要识别物体的类别(电阻器、电容器等),以及它们在真实黑白照片中的边界: 基本上,方法是这样的:
就我个人而言,我不知道有哪一个库可以做像
library.recognizeSquaresOnImage(params)
这样复杂的事情。我们为您提供了一些有用的方法来准备图像以供识别——这是您任务的核心——您必须自己完成
每个识别问题都有其独特的特征,可以用来缩小“识别管道”中每个步骤的不确定结果。例如,在我的任务中,我知道对象在相当白的背景上是黑色的,并且或多或少彼此分离,等等
我的项目是用OpenCV库用C++编写的,我用OpenCV库只进行图像的读取和显示,在窗口中显示-我不允许使用任何其他的库方法。 作为一个参考,你如何能做到这一点-是整个项目。即使是现在,它也不能完美地工作——它需要对分类器进行一些校准
为了更好地掌握它在更高层次上的工作原理,请查看文件。您是否尝试过应用
这似乎是您所需要的,因为您的正方形有直边。简单的正方形识别“图像识别中的任何东西都不简单(尽管强大的API可能提供更简单的包装方法),因此这似乎是矛盾的。“我真的找不到适合我口味的东西”让它在任何一个API中工作,不管它的味道如何。到目前为止,我已经尝试通过检查像素是否相邻来强制执行它。但这并不能生成一条漂亮的直线,因为有时正方形的宽度不完全是1。