在我们的某个社区网站中,我们允许用户上传图片。这些图片由我们的版主批准或拒绝。
为了限制管理员所需的工作,我们希望将拒绝的每张图片“记录”到某种数据库,并在提交图像进行审批之前在此数据库中进行查找。如果已经拒绝了类似的图像,则不会提交上传的图像以供审批。
我们当然可以记录图片的文件名,大小和MD5等相似之处,但绝对可以找到不同裁剪或调整大小的图片。
TinEye.com提供类似的功能。
你知道有哪种开源软件吗?你还有其他想法吗?
谢谢!
答案 0 :(得分:2)
要检测调整大小和有损压缩的图像,您可以将图像调整为某个标准尺寸(如40x40像素),然后从新图像中减去已知图像并将距离与阈值进行比较。
不幸的是,这不适用于旋转或裁剪。在这种情况下,您需要提取图像的比例不变特征。
这种方法的另一个问题是,通过简单的实现,计算成本在已知图像列表的大小上是线性的,因此将新图像与所有旧图像进行比较可能会非常昂贵。
答案 1 :(得分: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
答案 2 :(得分:0)
我为私人图像集合开发了类似于TinEYE的服务。它目前正在进行alpha测试,但对我的客户的50.000张图片效果很好......你甚至可以在电子纸上识别打印的图像:)
在http://example.askbubo.com上试用(仅搜索客户的图片)
在http://askbubo.com/上,您可以阅读更多内容。也可以直接在hajo(at)spratpix(dot)com与我联系。
虽然我计划稍后收取服务的费用,但我很乐意免费向参加alpha测试的人免费赠送,并提供良好的反馈。