代码:

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异常与断言

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

一句话&plus;两张图搞定JDK1&period;7HashMap&comma;剩下凑字数

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

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

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

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

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

两张图证明 WolframAlpha 的强大

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

&lbrack;转帖&rsqb;两张图看懂GDT、GDTR、LDT、LDTR的关系

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

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

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

用两张图告诉你,为什么你的App会卡顿&quest;

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

Java 比较两张图片的相似度

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

随机推荐

Jersey&lpar;1&period;19&period;1&rpar; - Root Resource Classes

Root resource classes are POJOs (Plain Old Java Objects) that are annotated with @Path have at least ...

unique mapped reads

就是指唯一比对的reads 现在人们已经开始避免使用unique mapped reads这个概念了,而转向使用mapq值来保留高质量的比对结果.因为mapq值反应了一组比对结果发生的可能性,MapQ ...

【POJ】2278 DNA Sequence

各种wa后,各种TLE.注意若AC非法,则ACT等一定非法.而且尽量少MOD. #include #include #include & ...

&lbrack;dfs&plus;水&rsqb; hdu 4462 Scaring the Birds

题意: N*N的矩阵中有M个点能够放稻草人.且给覆盖距离R 每一个稻草人能覆曼哈顿距离R以内的点 问最少须要多少个稻草人 思路: 由于范围非常小,直接能够暴力 注意稻草人所在的位置是不须要被覆盖的 代 ...

快递查询 C&num;

//电商ID private string EBusinessID = "1257164"; //电商加密私钥,快递鸟提供,注意保管,不要泄漏 private string App ...

【编辑器】Visual Studio Code

1.官网:https://code.visualstudio.com/Download 2.插件:https://marketplace.visualstudio.com/VSCode https:/ ...

高级组件——选项卡面板JTabbedPane

选项卡面板:JTabbedPane(标签位置,布局方式) 标签位置:JTabbedPane.TOP,JTabbedPane.BOTTOM,JTabbedPane.LEFT,JTabbedPane.RI ...

计算器的改良&lpar;NOIP2000&rpar;

题目链接:计算器的改良 这道题,不是很难,但代码也短不到哪去. 我们这里决定采取边读入边计算的方法,因为题目没有明确说式子有多长. 我们需要计算什么? 我们需要知道等号两边未知数的系数和常数项即可. ...

CS20 D LCA

给出一棵树,许多询问,每次询问A,B,C三点,求一点使到三点距离最小,输出该点和最小值. 很明显就是求LCA,三种组合都求一次LCA,然后在里面选个距离和最小的就行了. 官方题解里面的代码求LCA是在 ...

java 两个图片相似度_JAVA比较两张图相似度相关推荐

  1. java 图片相似搜索_java获取两张图片的相似度

    package com.sinosoft.lis.utils; import java.awt.Graphics2D; import java.awt.color.ColorSpace; import ...

  2. java 图片相似搜索_JAVA比较两张图片相似度的方法

    本文实例讲述了JAVA比较两张图片相似度的方法.分享给大家供大家参考.具体如下: 摘要: importjava.awt.image.BufferedImage; importjava.io.File; ...

  3. java怎么计算相隔多少天_java计算两个日期之间相差天数和相隔天数详解

    大家看到文章标题"两个日期之间相差天数和相隔天数",是否有疑惑呢!从中文字面理解,"相差"和"相隔"是有区别的,然而就是这些区别害死很多人, ...

  4. java两个时间相差分钟_Java计算两个日期时间相差几天,几小时,几分钟等

    展开全部 思路是先计算两个62616964757a686964616fe59b9ee7ad9431333365666264日期相差的毫秒数,然后分别根据每天的毫秒数.每小时的毫秒数.每分钟的毫秒数来计 ...

  5. java base64转图片并保存_java将base64解析图片保存到本地。

    将base64解析图片保存到本地的两个方法 /** * base64转图片 * @param base64str base64码 * @param savePath 图片路径 * @return */ ...

  6. 用java如何进行图片去白色_java如何对图片去除图片的白色的背景

    最近在做一个需求是从数据库里面取出图片,但是图片都有一个白色的背景,于是项目组希望可以将图片的白色的背景去掉 如图所示: ----------> 当然在这个上面是看不出来的,其实第一张图片是有一 ...

  7. java 两日期的周数_java – 获取两个日期之间的周数.

    我在一个项目中工作,我在Date中有两种类型.我想计算这两个日期之间的星期数.日期可能在不同的年份.有没有什么好的解决方案呢? 我试图用Joda-time来实现这一点,这在其他主题中被提出. 我不喜欢 ...

  8. JAVA生成九宫格图片 微信群头像(不限制张数)拿走即可用

    废话不多说 先上效果 再上代码 package cn.specil.util.file;import javax.imageio.ImageIO; import java.awt.*; import ...

  9. 两个图片叠加在一起css,css两张图片怎么叠加在一起?

    css实现两张图片叠加在一起的方法:首先添加2个img标签:然后设置它们的css样式为position:absolute:最后设置其中一个img样式为left:120px即可看见效果. 使用css把两 ...

  10. 两张图片计算相似度c语言算法,谱图相似度的计算方法与流程

    本发明涉及谱图,特别涉及谱图相似度的计算方法. 背景技术: 谱图的匹配比对在生物医学.化学.物理学等领域中有着广泛的应用. 在血液细菌感染(菌血症)的细菌鉴定工作中,由于患者的临床表现不典型,给感染的 ...

最新文章

  1. JavaScript 读写文件
  2. 10分钟搭建你的第一个图像识别模型 | 附完整代码
  3. 内存条引发的各类故障解析
  4. matlab中load seamout,matlab中的save与load函数
  5. nginx+php-fpm页面显示空白的解决方法
  6. Lucene中的一些基本概念
  7. SVN如何迁移到Git?
  8. 金三银四,Android高级开发面试题目,帮你助力
  9. Activity与Service通信(不同进程之间)
  10. Python安装教程:
  11. 西门子PLC面向对象编程
  12. 2.14 视图的分页预览以及分页符的使用 [原创Excel教程]
  13. HS6 USB数据采集卡、USB高速数据采集卡,高级触发功能图解
  14. 小白Java求学之路之一:控制台实现用户注册、登录
  15. 红黑二叉树详解及理论分析
  16. 计算机主机箱的类型,电脑机箱尺寸分类
  17. 禁止迅雷极速版强制升级方法
  18. 03、订单商品信息表.sql
  19. 神舟战神g8r9和g9r9区别对比评测选哪个好
  20. shell命令之ln

热门文章

  1. 各行业的英语术语(绝对精华 1)
  2. 8种妙招,公众号实现吸粉引流
  3. 当KPI说谎:数据科学错误的高昂代价
  4. 蛋白质组学数据分析实践
  5. Android Auto (AA)手机软件安装总结
  6. python滑稽代码
  7. 计算机指令的操作码和地址,操作码和地址码
  8. 阿尔伯塔大学计算机专业世界排名,加拿大学生最满意的TOP20大学排名
  9. 苹果内部应用商店批准/审核 iPhone 应用程序相关流程
  10. 我的世界java版怎么打开游戏菜单_我的世界游戏界面设置方法