Unity3D特效百例 | 案例项目实战源码 | Android-Unity实战问题汇总 |
---|---|---|
游戏脚本-辅助自动化 | Android控件全解手册 | 再战Android系列 |
Scratch编程案例 | 软考全系列 | Unity3D学习专栏 |
蓝桥系列 | ChatGPT和AIGC |
👉关于作者
专注于Android/Unity和各种游戏开发技巧,以及各种资源分享(网站、工具、素材、源码、游戏等)
有什么需要欢迎底部卡片私我,交流让学习不再孤单。
👉实践过程
在 Android 中,有时候会遇到比对两张 Bitmap 图片的相似度的需求,常见的方法有基于像素差异、直方图比较、或者使用一些更高级的算法如 SSIM(结构相似性)、SIFT(尺度不变特征转换)和pHash(感知哈希)。
😜像素
取出两张 bitmap 中的所有像素,然后逐像素一一进行对比。匹配的点除以总点数就能得到一个相似度。
//代码一
public static double compareBitmaps(Bitmap bitmap1, Bitmap bitmap2) {if (bitmap1.getWidth() != bitmap2.getWidth() || bitmap1.getHeight() != bitmap2.getHeight()) {throw new IllegalArgumentException("Bitmap sizes are different!");}int width = bitmap1.getWidth();int height = bitmap1.getHeight();long diff = 0;for (int y = 0; y < height; y++) {for (int x = 0; x < wid