import java.awt.image.BufferedImage;
import java.io.File;
import javax.imageio.ImageIO;public class Test{// 改变成二进制码public static String[][] getPX(String args) {int[] rgb = new int[3];File file = new File(args);BufferedImage bi = null;try {bi = ImageIO.read(file);} catch (Exception e) {e.printStackTrace();}int width = bi.getWidth();int height = bi.getHeight();int minx = bi.getMinX();int miny = bi.getMinY();String[][] list = new String[width][height];for (int i = minx; i < width; i++) {for (int j = miny; j < height; j++) {int pixel = bi.getRGB(i, j);rgb[0] = (pixel & 0xff0000) >> 16;rgb[1] = (pixel & 0xff00) >> 8;rgb[2] = (pixel & 0xff);list[i][j] = rgb[0] + "," + rgb[1] + "," + rgb[2];}}return list;}public static void compareImage(String imgPath1, String imgPath2){String[] images = {imgPath1, imgPath2};if (images.length == 0) {System.out.println("Usage >java BMPLoader ImageFile.bmp");System.exit(0);}// 分析图片相似度 beginString[][] list1 = getPX(images[0]);String[][] list2 = getPX(images[1]);int xiangsi = 0;int busi = 0;int i = 0, j = 0;for (String[] strings : list1) {if ((i + 1) == list1.length) {continue;}for (int m=0; m<strings.length; m++) {try {String[] value1 = list1[i][j].toString().split(",");String[] value2 = list2[i][j].toString().split(",");int k = 0;for (int n=0; n<value2.length; n++) {if (Math.abs(Integer.parseInt(value1[k]) - Integer.parseInt(value2[k])) < 5) {xiangsi++;} else {busi++;}}} catch (RuntimeException e) {continue;}j++;}i++;}list1 = getPX(images[1]);list2 = getPX(images[0]);i = 0;j = 0;for (String[] strings : list1) {if ((i + 1) == list1.length) {continue;}for (int m=0; m<strings.length; m++) {try {String[] value1 = list1[i][j].toString().split(",");String[] value2 = list2[i][j].toString().split(",");int k = 0;for (int n=0; n<value2.length; n++) {if (Math.abs(Integer.parseInt(value1[k]) - Integer.parseInt(value2[k])) < 5) {xiangsi++;} else {busi++;}}} catch (RuntimeException e) {continue;}j++;}i++;}String baifen = "";try {baifen = ((Double.parseDouble(xiangsi + "") / Double.parseDouble((busi + xiangsi) + "")) + "");baifen = baifen.substring(baifen.indexOf(".") + 1, baifen.indexOf(".") + 3);} catch (Exception e) {baifen = "0";}if (baifen.length() <= 0) {baifen = "0";}if(busi == 0){baifen="100";}System.out.println("相似像素数量:" + xiangsi + " 不相似像素数量:" + busi + " 相似率:" + Integer.parseInt(baifen) + "%");}public static void main(String[] args){Test.compareImage("E:\\2.png", "E:\\1.png");}
}

JAVA 比较两张图片的相似度相关推荐

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

    2019独角兽企业重金招聘Python工程师标准>>> package com.sinosoft.lis.utils; import java.awt.Graphics2D; imp ...

  2. 怎么看两张图片的相似度,判断两张图片的相似度

    C#怎么来判断2张图片相似度 很麻烦,而且计算量很大,这个属于人工智能的范畴.如果这"两张相似图片"可以规定很多前提,比如相同分辨率,黑白,简单几何图形... 那么可以用基本的算法 ...

  3. Python计算两张图片的相似度

    目录 一.场景需求解读 二.Mean Squared Error (MSE)简介 三.The Structural Similarity Index (SSIM)简介 四.算法代码实现 五.效果展示与 ...

  4. Python如何比较两张图片的相似度

    前言 本文是该专栏的第21篇,后面会持续分享python的各种干货知识,值得关注. 工作上,可能会需要你对两张图片进行相似度比较.比如现在的图片验证码,需要你对两张图片进行比较,找出图中存在相似特征的 ...

  5. 对比两张图片的相似度

    1.cosin相似度(余弦相似度) from PIL import Image from numpy import average, linalg, dotdef get_thumbnail(imag ...

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

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

  7. 使用openCV比对任意两张图片的相似度(亲测较准确)

    方案:使用openCV中的直方图算法做对比.测试效果较好. 步骤(在java中使用openCV): 1.引入openCV的依赖 <!-- https://mvnrepository.com/ar ...

  8. 用固定收敛标准网络的迭代次数比较两张图片的相似度

    在上一次实验中已经由数据证实了可以用特征迭代次数去区分minst数据集中的0和1时有可能的,因为50张0和50张1的分类正确率可以打到99%. 本文将迭代次数按大小排列,比较了图片和迭代次数的关系   ...

  9. 如何使用js实现两张图片的相似度比较

    最近换季容易感冒,小伙伴们及各位大佬一定要注意身体,每年的这个时候都要渡一次劫. 进博会马上就要来临,最近公司在做一个关于进博会的活动.我是不负责这个项目的.但是看到我们给甲方的稿子甲方老是不满意,老 ...

最新文章

  1. 3 行 Python 代码实现假聊天机器人(慎入:这是假机器人!!!)
  2. [LeetCode] 1091. Shortest Path in Binary Matrix
  3. gitlab备份与恢复操作整理
  4. boost::geometry::for_each_coordinate用法的测试程序
  5. Rails 应用使用 Capistrano2 部署流程
  6. 《Python Cookbook 3rd》笔记(5.9):读取二进制数据到可变缓冲区中
  7. AI大时代下,零基础进入人工智能领域该如何学习?
  8. 云存储应用是视频监控系统发展的必然需求
  9. 蓝桥杯 AGLO-152 算法训练 8-2求完数
  10. HALCON: 本地程序函数(.hdev或.dev)、HDevelop函数文件或外部函数(.hdvp)及库函数(.hdpl)使用详解
  11. 光子浏览器_光子学公开课第十四期 明日开课 | 上海大学金翊教授:三值光学计算机...
  12. 在手机上写python_牛逼啊!一个随时随地写Python代码的神器
  13. 基于队列的医院挂号模拟系统
  14. python 拼音 四线格_拼音四线三格中的写法示意及书写注意事项
  15. tensorflow出现问题Passing (type, 1) or 1type as a synonym of type is deprecated
  16. 监控之Promethus+grafana概述及问题处理
  17. 论Python常见的内置模块
  18. 2020腾讯实习生招聘面试算法题
  19. 多重if-else的精简方式
  20. 详解CSS中的百分号%设置

热门文章

  1. Java基础-02(基础语法)
  2. 精耕细作——建行广东江门分行以数字化经营推进信用卡业务持续发展
  3. UML建模(五)需求之系统用例图
  4. 算法提高 12-1三角形
  5. php 逆波兰 if,什么是逆波兰式?
  6. 最近火到不行的微信小程序的常识
  7. 机器学习算法系列(十六)-非线性支持向量机算法(Non-Linear Support Vector Machine)
  8. Unity改变物体颜色(添加材质Materials)
  9. 分数的发展史_分数的由来与发展
  10. Rundeck 部署