返回顶部
首页 > 资讯 > 后端开发 > Python >Java实现图片比对算法
  • 970
分享到

Java实现图片比对算法

2024-04-02 19:04:59 970人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

采用直方图原理算法比对图片的细微差别效果比较好,以下两张区别很小的图片识别效果如下: 识别结果: 主要代码如下: import javax.imageio.*; import j

采用直方图原理算法比对图片的细微差别效果比较好,以下两张区别很小的图片识别效果如下:

识别结果:

主要代码如下:

import javax.imageio.*;
import java.awt.image.*;
import java.awt.*;
import java.io.*;
 
public class PhotoDigest {
    public static void main(String[] args) throws Exception {
        float percent = compare(getData("/Users/sun/Downloads/1.jpg"),
                getData("/Users/sun/Downloads/3.jpg"));
        if (percent == 0) {
            System.out.println("无法比较");
        } else {
            System.out.println("两张图片的相似度为:" + percent + "%");
        }
    }
 
    public static int[] getData(String name) {
        try {
            BufferedImage img = ImageIO.read(new File(name));
            BufferedImage slt = new BufferedImage(100, 100,
                    BufferedImage.TYPE_INT_RGB);
            slt.getGraphics().drawImage(img, 0, 0, 100, 100, null);
            // ImageIO.write(slt,"jpeg",new File("slt.jpg"));
            int[] data = new int[256];
            for (int x = 0; x < slt.getWidth(); x++) {
                for (int y = 0; y < slt.getHeight(); y++) {
                    int rgb = slt.getRGB(x, y);
                    Color myColor = new Color(rgb);
                    int r = myColor.getRed();
                    int g = myColor.getGreen();
                    int b = myColor.getBlue();
                    data[(r + g + b) / 3]++;
                }
            }
            // data 就是所谓图形学当中的直方图的概念
            return data;
        } catch (Exception exception) {
            System.out.println("有文件没有找到,请检查文件是否存在或路径是否正确");
            return null;
        }
    }
 
    public static float compare(int[] s, int[] t) {
        try {
            float result = 0F;
            for (int i = 0; i < 256; i++) {
                int abs = Math.abs(s[i] - t[i]);
                int max = Math.max(s[i], t[i]);
                result += (1 - ((float) abs / (max == 0 ? 1 : max)));
            }
            return (result / 256) * 100;
        } catch (Exception exception) {
            return 0;
        }
    }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: Java实现图片比对算法

本文链接: https://lsjlt.com/news/146807.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Java实现图片比对算法
    采用直方图原理算法比对图片的细微差别效果比较好,以下两张区别很小的图片识别效果如下: 识别结果: 主要代码如下: import javax.imageio.*; import j...
    99+
    2024-04-02
  • Java怎么实现图片比对算法
    这篇“Java怎么实现图片比对算法”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Java怎么实现图片比对算法”文章吧。效果如...
    99+
    2023-06-30
  • jquery插件实现图片对比
    本文实例为大家分享了jquery插件实现图片对比的具体代码,供大家参考,具体内容如下 很常见的一个效果,做起来不难 效果如下 代码部分 <!DOCTYPE html>...
    99+
    2024-04-02
  • Java实现图片比率缩放
    本文实例为大家分享了Java实现图片比率缩放的具体代码,供大家参考,具体内容如下 通过Thumbnails实现图片缩放 需要导入pom依赖,可以到中央仓库获取最小的工具包 <d...
    99+
    2024-04-02
  • jquery插件怎么实现图片对比
    这篇文章主要介绍jquery插件怎么实现图片对比,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!jquery是什么jquery是一个简洁而快速的JavaScript库,它具有独特的链式语法和短小清晰的多功能接口、高效灵...
    99+
    2023-06-14
  • Java实现按比例缩小图片
    本文实例为大家分享了Java实现按比例缩小图片的具体代码,供大家参考,具体内容如下 使用spring注解上传文件@RequestParam(value="", r...
    99+
    2024-04-02
  • java项目实现图片等比缩放
    本文实例为大家分享了java项目实现图片等比缩放的具体代码,供大家参考,具体内容如下 package common;   import java.awt.Image; import ...
    99+
    2024-04-02
  • 基于Java实现图片相似度对比的示例代码
    目录前言依赖基本算法相关代码前言 很多时候我们需要将两个图片进行对比,确定两个图片的相似度。一般常用的就是openCv库,这里就是使用openCv进行图片相似度对比。 依赖 <...
    99+
    2024-04-02
  • Java怎么实现按比例缩小图片
    这篇文章主要讲解了“Java怎么实现按比例缩小图片”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java怎么实现按比例缩小图片”吧!使用spring注解上传文件@RequestParam(v...
    99+
    2023-06-30
  • 实现对图片seo的方法分享
    这篇文章主要讲解了“实现对图片seo的方法分享”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“实现对图片seo的方法分享”吧!首先,我们创建一个数据库表来保管我们的图片信息,以及对应的src。...
    99+
    2023-06-12
  • Python实现RGB等图片的图像插值算法
    目录前言RGB彩色图像和数组理解图片坐标对其左对齐中心对齐临近插值算法线性插值法双线性插值三种插值算法的综合使用附件前言 问题:我们在放大图片的过程中,放大的目标图像和原图图像之间会...
    99+
    2024-04-02
  • Java 实现图片转base64
    一. 自己实现byte数组拷贝 public class Base64Util {// base64图片 存储的byte数组 private byte[] baseByte= new byte[...
    99+
    2023-09-13
    java 开发语言
  • Android编程实现等比例显示图片的方法
    本文实例讲述了Android编程实现等比例显示图片的方法。分享给大家供大家参考,具体如下: 在android中,由于密度的影响,如果想得到图片的宽高是不行的,具体为什么我就大概...
    99+
    2022-06-06
    方法 图片 Android
  • Python对130w+张图片检索的实现方法
    任务说明: 130w+张图片,8张excel表里记录了需要检索图片的文件名,现在需要找出对应的图片,将找出的图片按不同的excel分别保存,并且在excel里能够直接打开图片。 任务...
    99+
    2024-04-02
  • Java 实现RSA非对称加密算法
    目录  公钥与私钥  Java实现  公钥与私钥   公钥与私钥是成对的,一般的,我们认为的是公钥加密、私钥解密、私钥签名、公钥验证,有人说成私钥加密,公钥解密时不对的。   公钥与...
    99+
    2024-04-02
  • Python怎么实现RGB等图片的图像插值算法
    这篇文章主要介绍“Python怎么实现RGB等图片的图像插值算法”,在日常操作中,相信很多人在Python怎么实现RGB等图片的图像插值算法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python怎么实现R...
    99+
    2023-06-21
  • java实现图片验证码
    本文实例为大家分享了java实现图片验证码的具体代码,供大家参考,具体内容如下 目的: 1) 验证操作者是否是人 2) 防止表单重复提交 生成验证码的要点: 1) 使用java代码生...
    99+
    2024-04-02
  • HTML5 Canvas如何实现图片缩放比例
    小编给大家分享一下HTML5 Canvas如何实现图片缩放比例,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧! drawImage方法的又一变种是增加了两个用于控制图像在canvas中缩放...
    99+
    2024-04-02
  • Android图片缓存原理、特性对比
    这是我在 MDCC 上分享的内容(略微改动),也是源码解析第一期发布时介绍的源码解析后续会慢慢做的事。 从总体设计和原理上对几个图片缓存进行对比,没用到他们的朋友也可以了解他们...
    99+
    2022-06-06
    缓存 Android
  • Android对EditTex的图片实现监听
    本文为大家分享了EditTex图片实现监听的方法,供大家参考,具体内容如下 第一个例子:对EditText右边的图片进行监听 获取EditText的最右边的x2坐标减去最右边图...
    99+
    2022-06-06
    监听 图片 Android
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作