c++ - 比较数组相似性的最佳比较算法是什么?

标签 c++ arrays image algorithm image-processing

我正在构建一个程序,它接受 2 个数组并返回一些值来显示它们的相似程度。例如,差异较小的图像得分较高,而差异较大的图像得分较差。

到目前为止,我遇到的解决此问题的仅有的两种算法是平方差之和和归一化相关性。

这两个实现起来都相当简单,但是我想知道是否还有其他我无法找到可以使用的算法?

此外,前面提到的哪种方法最好?很高兴知道它们的准确性和效率。

谢谢,

最佳答案

比较图像通常取决于您正在处理的应用程序。通常使用的距离函数取决于图像描述符。

看看距离函数

  1. 欧氏距离
  2. 平方欧氏距离
  3. 余弦距离或相似性[这应该可以正常工作]
  4. 绝对差之和
  5. 差平方和
  6. 相关距离
  7. 海灵格距离

网格距离

  1. 曼哈顿距离
  2. 切比雪夫距离

统计距离函数

  1. Wasserstein 公制
    1. 马氏距离
    2. 布雷柯蒂斯距离
    3. 堪培拉距离

二进制距离函数

  1. L0 范数
  2. 杰卡德相似度
  3. 汉明距离

当您直接比较图像时,采用余弦相似度应该适合您。

关于c++ - 比较数组相似性的最佳比较算法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41083006/

相关文章:

PHP/MySQL 基于数组内容的平均值

java - 获取大屏幕截图中小屏幕截图位置的坐标

android - QCAR中使用的图像检测技术

java - 创建行和列

jquery - 在图像覆盖的 header 标记内带有顶部边距的带边框的文本标题

c++ - 使用 push_back c++ 读取特定列的数据

c++ - 将原始类型的常量引用作为函数参数传递

c++ - 如何判断谁发送了 ON_WM_SHOWWINDOW 消息 mfc

无论用户输入什么,C++ cin 都会为整数返回 0

c++ - 使用数组查找 HCF,得到未知输出 (C++)