java - 如何检查曲线是否相似

标签 java algorithm image-processing image-recognition

如何比较白色背景上的两条黑色曲线?怎么做到那么快?例如 这个

http://i.stack.imgur.com/xUcwc.jpg

还有这个

enter image description here

类似,但是这个

enter image description here

还有这个

enter image description here

不是

我将在 JPanel 上绘制第一条曲线,第二条是图像。

最佳答案

我有一个想法。不确定它是否是最好的,但不知何故它允许评估两个曲线的相似系数。

让我们为每个曲线创建一个矩阵,黑色像素为 1,白色像素为 0。现在如果我们想要比较两个曲线与矩阵 ab 首先我们应该构造第三个矩阵 c 其中:

if(a[i][j] == 0 && b[i][j] == 0)
    c[i][j] = 0;
else if(a[i][j] == 0 || b[i][j] == 0)
    c[i][j] = 1;
else
    c[i][j] = 2;

然后我们将用 S 表示 c[i][j] != 0 的单元格计数,并用 T 表示c[i][j] == 2 的单元格。如果 T/S > 1 - eps,最后两个曲线是相似的,其中 eps 你应该根据你想要得到的精度来选择自己。

关于java - 如何检查曲线是否相似,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6574791/

相关文章:

java - 我的Java程序正在创建27个无效错误

java - Java 8 接口(interface)中的默认方法和 Bean Info Introspector

Java - 获取封闭实例

algorithm - 通过NuSMV验证Dekker的互斥算法

c - 我的快速排序实现有问题

java - Java中的俄罗斯方 block 形状生成算法

java - 从外部Java屏幕资源获取 "image"

java - 这是使用 IllegalArgumentException 的正确方法吗?

c# - 从 8 位索引像素数组转换为位图对象

image-processing - 带填充的平均池的期望行为是什么?