如何比较白色背景上的两条黑色曲线?怎么做到那么快?例如 这个
还有这个
类似,但是这个
还有这个
不是
我将在 JPanel 上绘制第一条曲线,第二条是图像。
最佳答案
我有一个想法。不确定它是否是最好的,但不知何故它允许评估两个曲线的相似系数。
让我们为每个曲线创建一个矩阵,黑色像素为 1,白色像素为 0。现在如果我们想要比较两个曲线与矩阵 a
和 b
首先我们应该构造第三个矩阵 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/