Bootstrap

Android修行手册-五种比较图片相似或相同

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
;