Google用户的个人资料图片默认为 https://yt3.ggpht.com/-_fExgATRXLY/AAAAAAAAAAI/AAAAAAAAAAA/-fmo8LhN7Pg/s240-c-k-no-rj-c0xffffff/photo.jpg
我想检查用户是否根据图片的网址将其图片更新为默认图像。那可能吗?还有其他方法可以检查吗?
编辑:已设置的Google个人资料图片的网址为: https://yt3.ggpht.com/-zSpYe-dpPNk/AAAAAAAAAAI/AAAAAAAAAAA/EVfQSDPEeQc/s240-c-k-no-rj-c0xffffff/photo.jpg
答案 0 :(得分:1)
使用Google API的解决方案 在Google响应中,它提供了一个字段isDefault,如果用户上传了他/她的照片,则该字段设置为false。您可以查看文档并尝试样本api here。
您只需将userId添加为me
并将字段值设置为image
即可尝试该示例。返回的样本值为: -
{
"image": {
"url": "https://lh3.googleusercontent.com/-cXXaVVq8nMM/AAAAAAAAAAI/AAAAAAAAAKI/_Y1WfBiSnRI/photo.jpg?sz=50",
"isDefault": false
}
}
使用图像处理的解决方案
作为图像处理工程师,这是另一种解决方案。在示例Google默认图像和下载的图像之间计算的简单相似性/差异度量可以轻松解决此问题。我发现Google在过去一年中更改了默认图片。尽管图像看起来相同,但像素并不完美匹配。因此,归一化误差应该接近于零,但可能并不总是为零。
使用ImageMagick
Imagemagick是一个bash命令Image Processing Utility(它还有很多......)。可以使用以下命令快速检查图像是否为默认图像: -
均方根误差(越小越好):
$> compare -metric RMSE defaultProfilePic1.jpg defaultProfilePic2.jpg NULL:
$> 242.453 (0.0036996)
在上面的命令中,NULL表示将输出定向到控制台。括号中的输出是标准化误差,正如您所看到的那样接近0.阈值0.01-0.03应该足够好开始。
归一化的交叉相关(越接近1,越好):
反之亦然,可以使用相似性度量来查看归一化输出是否足够接近1。
$> compare defaultProfilePic1.jpg defaultProfilePic2.jpg -metric NCC NULL:
$> 0.998602
有关详细信息,请参阅here。
以下是使用Google Api下载的示例图片。