如何识别仅2“黑白”图像之间的相似度(以%表示)?

时间:2014-02-07 09:33:24

标签: android image image-processing similarity

我搜索了所有可能相关的关键字,但我的结果并不是我想要的,因为我发现的大多数算法都对COLOR非常关注。

我的应用的想法是识别具有最高相似性的图像对。

例如,我的输入是a,图像池包含b,c,d,e。 结果将是b(90%),d(85%),e(80%),c(20%)。

我的问题是可以采用什么方法来计算这种“图像相似度”? 或者我必须从零构建我自己的代码?

  

enter image description here

4 个答案:

答案 0 :(得分:1)

也许你应该看看Hough transform。这些线将对应于变换图像中的峰值。然后你可以识别这些峰值像素,并以某种方式将它们的位置与原始图像的位置进行比较。

答案 1 :(得分:0)

查看 SSIM 以比较两张图片。 SSIM 代表结构相似性指数指标,其基于两个图像之间的相似性给出单个值。访问维基百科页面Structural Similarity

答案 2 :(得分:0)

首先,最好的工具是OpenCV,它适用于大多数常见的编程语言。

您可以看到文档页面,有很多功能可以帮助您。

函数approxPolyDP()see the detail here) 它以指定的精度近似多边形曲线(您的形状)。 在此之前,您必须检测几张图像中的轮廓。

this example对您非常有帮助:

改进:

  • 您可以计算近似的片段
  • 您可以计算每两段之间的角度。
  • 你可能会发现一些几何不变量度(线长比,重心,面积比......)这是最好的

答案 3 :(得分:0)

您可以查看形状上下文http://en.wikipedia.org/wiki/Shape_context以计算形状之间的相似性,互联网上有许多形状上下文的实现,可以在此处访问完整的论文http://www.cs.berkeley.edu/~malik/papers/BMP-shape.pdf