我试图找出一种比较两个图像颜色的好方法。我的一个想法是取两张图像的平均颜色并减去该数量以获得“颜色距离”。无论哪两个图像具有最小的颜色距离,都将是匹配的。这似乎是从图像数据库中识别图像的可行选择吗?
理想情况下,我想用它来识别通过图像扫描仪放置的扑克牌。
例如,如果我要将这张卡的真实版本扫描到我的计算机上,我希望能够将其与我数据库中的所有图像进行比较,以找到最接近的一张。
更新: 我忘了提及我的具体问题所涉及的挑战。
- 卡片的扫描图像和卡片的原始图像很可能是不同的尺寸(在宽度和高度方面)。
- 我需要让它尽可能高效。我计划使用它一次扫描/识别数百张卡片。我认为为每张图像查找(并存储)单个平均颜色值比比较数据库中每张图像的单个像素(数据库中有超过 10,000 张图像)需要识别的每张扫描卡要高效得多. 我问这个问题的原因是看看是否有人尝试比较平均颜色值作为图像识别的一种手段。由于色值精度和准确性的问题,我感觉它可能无法像我想象的那样工作。
更新 2: 这是我所设想的一个例子。
要识别的图像 = A
数据库中的图像 = { D 1 , D 2 }
图像 A 的平均颜色 = avg(A) = #8ba489
数据库中图像的平均颜色 = { #58727a, #8ba489 }
D 2与图像 A 匹配,因为 #8ba489 - #8ba489 小于 #8ba489 - #58727a。
当然,测试图像不会与这些图像中的任何一个完全匹配,因为它会被扫描进来;但是,我正在尝试找到最接近的匹配项。