代码:

package com.uiwho.com;

import javax.imageio.*;
import java.awt.image.*;
import java.awt.*;//Color
import java.io.*; public class PhotoDigest {
public static void main(String[] args) throws Exception {
float percent = compare(getData("C:/Users/Administrator/Desktop/1.jpg"),
getData("C:/Users/Administrator/Desktop/2.png"));
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;
}
}
}

JAVA比较两张图相似度的更多相关文章

  1. 两张图解读Java异常与断言

    两张图解读Java异常与断言                                 --转载请注明出处:coder-pig 本节引言: 前天公布的"七张图解析Java多线程&quo ...

  2. 一句话+两张图搞定JDK1.7HashMap,剩下凑字数

    JDK1.7 HashMap一探究竟 HashMap很简单,原理一看散列表,实际数组+链表;Hash找索引.索引若为null,while下一个.Hash对对碰,链表依次查.加载因子.75,剩下无脑扩数 ...

  3. 两张图总结 Neutron 架构 - 每天5分钟玩转 OpenStack(74)

    前面我们详细讨论了 Neutron 架构,包括 Neutron Server,Core 和 Service Agent.现在用两张图做个总结.先看第一张: 与 OpenStack 其他服务一样,Neu ...

  4. Javscript轮播 支持平滑和渐隐两种效果(可以只有两张图)

    原文:Javscript轮播 支持平滑和渐隐两种效果(可以只有两张图) 先上两种轮播效果:渐隐和移动   效果一:渐隐 1 2 3 4 效果二:移动 1 2 3 4 接下来,我们来大致说下整个轮播的思 ...

  5. 两张图证明 WolframAlpha 的强大

    引用于:https://capbone.com/wolfram-alpha/ 两张图证明 WolframAlpha 的强大 之前在" 我手机中有哪些应用 "里提到过 Wolfram ...

  6. [转帖]两张图看懂GDT、GDTR、LDT、LDTR的关系

    两张图看懂GDT.GDTR.LDT.LDTR的关系 2018-06-09 18:13:53 Six_666A 阅读数 2044更多 分类专栏: 深入理解linux内核   转自:http://ju.o ...

  7. 两张图搞清楚Eclipse上的Web项目目录

    从MyEclipse转到Eclipse起初有点不习惯eclipse的目录结构,顺手一查看到的文章帮助很大,转载一下: 原文链接:https://www.jianshu.com/p/91050dfcbe ...

  8. 用两张图告诉你,为什么你的App会卡顿?

    有什么料? 从这篇文章中你能获得这些料: 知道setContentView()之后发生了什么? 知道Android究竟是如何在屏幕上显示我们期望的画面的? 对Android的视图架构有整体把握. 学会 ...

  9. Java 比较两张图片的相似度

    import java.awt.image.BufferedImage; import java.io.File; import javax.imageio.ImageIO; /** * 比较两张图片 ...

随机推荐

  1. 教材配套PPT初稿

    1-10章初稿,基本完整.有些粗糙,后面可能会稍作调整. 附更新情况如下: 1.增加了第10章内容: 2.第5章增加了一些内容: 3.第3章内容部分更新: 4.增加了第8-9章内容. 订正:更新了第8 ...

  2. 【技术累积】【点】【java】【20】static关键字

    基础概念 是个修饰符: 修饰变量.常量.方法.代码块: 被修饰的为静态: 方便在没有创建对象的情况下来进行调用(方法/变量): static修饰的成员被所有的对象所共享: static优先于对象存在, ...

  3. Centos6.6 安装Subversion服务

    一.介绍 Subversion 简称就是svn服务器,用来托管代码的,类似的还有git 1)Centos6.6 2)Subversion 二.安装 yum -y install subversion ...

  4. Kind (type theory)-higher-kinded types--type constructor

    , pronounced "type", is the kind of all data types seen as nullary type constructors, and ...

  5. BZOJ 1645: [Usaco2007 Open]City Horizon 城市地平线 扫描线 + 线段树 + 离散化

    Code: #include<cstdio> #include<algorithm> #include<string> #define maxn 1030000 # ...

  6. maven将jar包添加到本地仓库

    mvn install:install-file -Dfile=jar包本地路径 -DgroupId=groupID -DartifactId=ifactId -Dversion=版本 -Dpacka ...

  7. django QuerySet对象转换成字典对象

    >>> from django.contrib.auth.models import User >>> from django.forms.models impor ...

  8. 使用Layer完成图片放大功能

    序言:在写这个功能之前也用了zoom.js,zoom.js用起来简单引用js然后设置图片属性就可以放大.但是放大后的图片模糊.没有遮罩.在放大图片时其它图片布局会受到影响,当然如果觉得这些都是小问题的 ...

  9. 【[Offer收割]编程练习赛11 C】岛屿3

    [题目链接]:http://hihocoder.com/problemset/problem/1487 [题意] 中文题 [题解] 岛屿的数目对应了这个图中联通块的数目; 面积则对应有多少个方块; 周 ...

  10. 0926MySQL中ICP索引下推

    转自 http://blog.itpub.net/22664653/viewspace-1678779/ [MySQL]MySQL5.6新特性之Index Condition Pushdown2015 ...