我想将图像与一组超过1000张图像进行比较。我正在生成一个照片马赛克。
到目前为止我做了什么:
我使用LAB颜色模型获取每个图像的L A B值,并将此值存储在KD树中。 这是具有L A * B *值的三维树。然后我计算图像中每个网格的LAB值,我必须生成照片马赛克。我使用最近邻算法和欧几里德距离度量来找到最佳匹配。
我得到了一个好结果,但我希望改善我的结果。我读了关于SIFT的图像比较,它看起来很有趣,我将来会实现它。现在,你们可以建议我可以比较的任何其他功能,如亮度,背景颜色,或者可能是另一个比欧几里得更好的距离指标?
答案 0 :(得分:2)
来自SIFT的公寓,另一个使用的功能是通过Earth Movers的距离比较颜色直方图。您可以查看以下文件:
The earth mover's distance as a metric for image retrieval
此外,与SIFT更相似的是图像的GIST,它用于“语义”(或多或少)检索:
Building the gist of a scene: the role of global image
features in recognition
例如,在使用数百万张照片进行场景完成的论文中使用了它:
Scene Completion Using Millions of Photographs
您还可以调整使用SIFT进行图像变形的方法(例如SIFT Flow: Dense Correspondence across Scenes and its Applications)来导出图像比较的度量。通常情况下,标准的SIFT匹配效果不佳,而且您的结果指标也不是很好:能够进行良好匹配会使事情变得更好。
简而言之,正如评论所说,这取决于你想要比较和实现的目标(你的意思是“好”):你想匹配颜色(直方图)吗?结构(SIFT)?语义学(GIST)?或者......?