我正在实施一个应用程序来搜索比较直方图的纹理目录中的照片。
为了提高准确性,在与目录匹配之前,我应该对照片应用哪些流程进行标准化/清理?
更新
我添加了一张用Android相机制作的实际照片,以及保存在目录中的所需匹配图片。
如何处理照片以纠正颜色,增强并使其更好地与目录匹配。
答案 0 :(得分:0)
这实际上取决于纹理。我想要问的问题是,什么样的变体是可以接受的,你想从目录中删除哪种变体。或换句话说,您关心哪些功能并想要搜索?
例如,如果颜色不重要,那么标准化/清洁中的一个步骤是将所有颜色转换为灰度以消除潜在的变化。也许一个更相关的例子是你只想与纹理中最强的边缘进行比较,这样你就会模糊出较弱的边缘。
这一切都取决于您的具体用例。考虑一下 想要匹配的内容,您可以获得的具体内容越多,您可以做的规范化和清洁越多,您的应用程序就越准确。
答案 1 :(得分:0)
您的问题应包含示例数据和您的解决方案尝试。让我们说你想找到图像0.35压缩扭曲图像多少。
img = Import["http://farm1.staticflickr.com/62/171463865_36ee36f70e.jpg"]
img2 = ImportString@ExportString[img, "JPEG", "CompressionLevel" -> 0.35]
diff = ImageSubtract[Image[img, "Real"], Image[img2, "Real"]]
ArrayPlot[0.5 + 5 ImageData[First@ColorSeparate[diff, "Red"]],
ColorFunction -> "RedGreenSplit", ColorFunctionScaling -> False]
差异很小,因此输出差异被放大5倍。
使用Mathematica(aka Wolfram语言)完成了示例。最初的问题是:How can I tell exactly what changed between two images?。
除此之外@Noremac是对的 - 它实际上取决于您的具体用例。