3

在我们的一个社区网站中,我们允许用户上传图片。这些图片由我们的版主批准或拒绝。

为了限制我们的管理员所需的工作,我们希望将每张被拒绝的图片“记录”到某种数据库中,并在提交图像以供批准之前在该数据库中进行查找。如果相似的图片已经被拒绝,上传的图片将不会提交审批。

我们当然可以只记录图片的文件名、大小和 MD5 之类的内容以获取相似性,但我们肯定可以找到不同的裁剪或调整大小的图像。

TinEye.com 提供了类似的功能。

你知道任何类型的开源软件能够做到这一点吗?你还有其他建议吗?

谢谢!

4

3 回答 3

2

要检测调整大小和有损压缩的图像,您可以将图像调整为某个标准尺寸(如 40x40 像素),然后从新图像中减去已知图像并将距离与阈值进行比较。

不幸的是,这不适用于旋转或裁剪。在这种情况下,您需要提取图像的尺度不变特征。

这种方法的另一个问题是,在简单的实现中,计算成本与已知图像列表的大小成线性关系,因此将新图像与所有旧图像进行比较可能很快就会变得过于昂贵。

于 2010-09-13T13:36:16.590 回答
2

如果不能保证 100% 的相似性,您可以建立一个包含“相似图像”的列表。可以通过考虑图像指纹来计算相似度(正如Winner所说,您可以将其缩放到标准大小并从中构建校验和)。也可以使用“平均”颜色和颜色“变化”。

基于此,您可以向管理员显示“相似图像”(可点击的拇指)列表,按“最有可能相似”的顺序排序

您还可以查看 Image::Compare http://linux.softpedia.com/get/Programming/Widgets/Perl-Modules/Image-Compare-43727.shtml和 jpegDiff http://www.marengo-ltd.com/ open_source/index.php

于 2010-09-13T13:54:11.013 回答
0

我开发了一项类似于 TinEYE 的服务,用于私人图像收藏。它目前处于 alpha 测试阶段,但非常适合我客户的 50.000 张图像……您甚至可以识别电子纸中的打印图像 :)

在http://example.askbubo.com上试用(仅搜索我客户的图片)

http://askbubo.com/你可以阅读更多。也可以随时通过 hajo (at) spratpix (dot) com 直接与我联系。

虽然我计划稍后对该服务收费,但我很乐意将其免费赠送给参与 alpha 测试并提供良好反馈的人。

于 2011-01-28T12:06:37.727 回答