我想做一个硬币识别项目,在这个项目中,相机会拍摄几张硬币的照片,然后按价值识别它们,将它们相加并输出金额。我只想通过查看它们的大小来考虑价值,(硬币越大,价值越大)但我能想到的问题是,如果从不同的角度拍摄照片或相机与硬币的距离与平时不同?如何解决它还是有其他替代方法?我以前没有图像处理的经验,我想在学习的过程中学习。
答案 0 :(得分:1)
如果您没有任何经验,那么您想要实现的目标并不那么容易......但是如果您能够理解成像过程的基础知识及其背后的几何形状,那么相机角度不是问题:使用校准过的相机,您可以检索硬币所在表面的省略(假设它们在桌子上)。
当您尝试识别您的硬币时,您可以尝试做的几乎是使用椭圆拟合算法或霍夫圆变换来查找使用省略图从原始图像获得的表的鸟瞰图上的圆圈。 / p>
答案 1 :(得分:0)
从我的观点来看,Valleymanbs所说的基本上是正确的。只需添加一些我认为对您来说很重要的事情。 您需要了解以下内容
校准相机。 - >您可以获得焦距和原点等内在参数以及相机旋转和平移等外部参数,以便稍后纠正图像。
恢复图像。 - >图像描述将修改图像,以便您获得视图。为此,我建议你把你的相机放在你要放置硬币的桌子上方。相机和桌子之间的距离应该很大,这意味着你的相机的分辨率也应该足够高。
只要您了解相机校准和图像校正的原理并获取硬币的图像,您就可以使用eclipse算法或霍夫变换进行图像分割,只需获取硬币的周围圆圈。 / p>
然后,您可以进行一些图像处理,例如二值化或侵蚀,无论计算圆的面积是什么。
但是,我个人不会只考虑硬币大小这样的一个功能来确定硬币的价值,因为一些具有不同价值的硬币可能具有非常相似的尺寸。因此,我建议您使用另一种称为分类器的技术。您可以添加颜色甚至纹理等功能。那么在你的情况下,我认为你可以应用SVM:支持向量机将你的硬币分类到正确的类。
我知道您对图像处理没有经验。但是你的解决方案没有捷径可走。我建议您花时间了解我的提案框架以及每个步骤的根本原因。玩得开心。 :) 希望这对你有所帮助。