gpt4 book ai didi

Android比较/搜索多张图片

转载 作者:行者123 更新时间:2023-11-30 01:12:42 24 4
gpt4 key购买 nike

我有一个图像列表和一个输入图像,如果图像存在于我的列表中,我想输出 true。如果图像具有相同的原始数据,则认为它们是相等的。

在 Android 中是否有一种简单的方法可以做到这一点?

我看到了这个方法:

boolean Bitmap.sameAs(Bitmap)

但是它需要针对列表中的每个图像测试二进制数据,这有点昂贵。有更好的方法吗?

如果我将相等图像的定义更改为“相似”,如果图像的视觉相似度超过 90%,它们将被视为相等。

最佳答案

这是第一部分的解决方案,其中相同的图像是那些获得相同原始数据的图像。

您可以对每个图像进行哈希处理并通过哈希进行比较,这样您将只测试一次图像原始数据。

String toSHA1(Bitmap bitmap){
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG, 100, stream);
byte[] byteArray = stream.toByteArray();
try {
String sha1 = toSHA1(byteArray);
stream.close();
return sha1;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}

String toSHA1(byte[] data) throws NoSuchAlgorithmException {
MessageDigest md = MessageDigest.getInstance("SHA-1");
BigInteger bigInteger = new BigInteger(1, md.digest(data));
return bigInteger.toString(Character.MAX_RADIX);
}

关于Android比较/搜索多张图片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38264406/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com