java - 使用 Java(无开源库)从图像中检测硬币

标签 java image-processing computer-vision

问题:

编写一个 Java 应用程序让用户捕获/上传任何图像。之后,程序是从图像中检测一分硬币、五分硬币、一角硬币和四分之一硬币,并显示硬币总数(例如 1.21 美元)。任何其他现金形式(如账单、票据、支票)都将被忽略。

不使用开源库。

我需要知道的:

经过大量研究后,我发现 Hugh 变换实现可以提供帮助。就个人而言,我学习过商业经济学,对复杂数学的了解非常有限。

  1. 有人可以指导我找到可以从初学者的角度学习 Hugh Transform 的资源吗?
  2. 假设我找到了一种检测圆(椭圆)的方法。如何区分不同种类的硬币。

    • 颜色无济于事,因为只有一分钱有铜色。所有其他类型的硬币都是银色。
    • 半径或直径也无济于事,因为照片缩放级别也会影响输出。
    • 最后,我们无法与其他硬币进行相对比较,因为图片中可能不存在镍或便士。

我知道这是一个开放式问题。我们将不胜感激任何初学者级别的帮助和指导。

最佳答案

您有两个不同的问题。第一个是简单地找到图像上的任何圆圈。这就是霍夫变换所做的。第二个是将发现的圆圈与硬币相关联。您将在这里需要非常复杂的特征检测算法,我不确定您是否有必要从头开始编写所有代码而不使用任何开放库。所以我建议你停止对霍夫变换的研究或者改变你的任务条件。至于霍夫变换,它是一个非常简单的算法,没有任何复杂的数学运算。如果你对它的实现有任何问题,你可以查看 opencv 库及其开放的 source code并将其用作您自己实现的起点。

关于java - 使用 Java(无开源库)从图像中检测硬币,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29585038/

相关文章:

ios - iRecognise 人的扫描图像中的眼睛

java - 将 ComboBox#itemsProperty 绑定(bind)到 Map#keySet

树莓派上的 JavaFX 动画

Python:处理图像并保存到文件流

c# - 使用 MaxHeight 和 MaxWidth 约束按比例调整图像大小

c# - int rosu=Color.red.getRGB() 从 Java 到 C#

R : what library should I use? 中的图像处理/颜色检测

java - 如何始终显示一周的最后一天

java - 如何输入我的文件?

python - Caffe将python层中的标签数据处理为int