本文实例讲述了JAVA比较两张图片相似度的方法。分享给大家供大家参考。具体如下:

摘要:

importjava.awt.image.BufferedImage;

importjava.io.File;

importjavax.imageio.ImageIO;

/***比较两张图片的相似度*@authorGuihua**/publicclassBMPLoader{//改变成二进制码

publicstaticString[][]getPX(Stringargs){int[]rgb=newint[3];

Filefile=newFile(args);

BufferedImagebi=null;

try

主要代码如下:

import java.awt.image.BufferedImage;

import java.io.File;

import javax.imageio.ImageIO;

/**

* 比较两张图片的相似度

* @author Guihua

*

*/

public class BMPLoader {

// 改变成二进制码

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);

}

// 分析图片相似度 begin

String[][] 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

try {

String[] value1 = list1[i][j].toString().split(",");

String[] value2 = list2[i][j].toString().split(",");

int k = 0;

for (int n=0; 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

try {

String[] value1 = list1[i][j].toString().split(",");

String[] value2 = list2[i][j].toString().split(",");

int k = 0;

for (int n=0; 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){

BMPLoader.compareImage("E:\\12.bmp", "E:\\1.bmp");

}

}

希望本文所述对大家的java程序设计有所帮助。

java 图片相似搜索_JAVA比较两张图片相似度的方法相关推荐

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

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

  2. python相似图片计算_计算两张图片相似度的方法总结

    python工具包-pyssim 简介 python工具包,用来计算图像之间的结构相似性 (Structural Similarity Image Metric: SSIM).结构相似性介绍详见:ht ...

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

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

  4. 如何计算两幅图像的相似度,计算两张图片相似度

    怎么对比两张图片的相似度 1.首先打开微信,选择底部"发现".如图所示.2.然后在点击进入"小程序".如图所示.3.然后输入"腾讯AI体验中心&quo ...

  5. java两张png图片合成_java将两张图片合成

    将两张图片合成一张新的图片 /** * 图片合成 * * @param backgroundPath 底图 * @param smallPath 小图 * @param type 生成图片类型jpg, ...

  6. html 图片能重叠吗,css两张图片怎么叠加在一起?

    1.新建一个html文件,命名为test.html,用于讲解css怎么把两个图片叠加在一起. Document 2.新建两个div,一个是class属性为a的div,另一个是class属性为b的div ...

  7. OpenCV将两图片进行混合,达到两张图片合并成一张图片的效果

    1.概述 案例:将两张图片混合成一张图片,并且原图的元素要保留到同一张图片中. 2.示例图片 2.1.混合后的图片 2.2.原始的两张图片 3.示例代码 //将两张图片进行混合 #include &l ...

  8. python计算两张图片相似度,python 图片相似度匹配

    如何使用python来判断图片相似度 . fromPILimportImageimportos#importhashlibdefgetGray(image_file):tmpls=[]forhinra ...

  9. java保留小数_java保留两位小数4种方法

    java保留两位小数4种方法 方法一:String的format方法(推荐) double f = 111231.5585; System.out.println(String.format(&quo ...

最新文章

  1. 一群猥琐至极的大学舍友,我有点想你们了...附骚图
  2. matlab 二次指数平滑法预测
  3. xp系统的计算机管理中用户在哪里,XP系统设备管理器中一片空白怎么修复?
  4. Cortex-M3 异常中断向量表
  5. Windows下安装Anaconda3与配置
  6. 【Java Web开发指南】ORM一些基础问题整理
  7. QT之QHash简介
  8. bootstrap的分页
  9. C#判断点和直线的位置关系
  10. 查看mysql服务的可视化_Prometheus 监控Mysql服务器及Grafana可视化
  11. junetxtdb.class.php,PHP-site
  12. 2-7 微信摇一摇_实现分析
  13. 每个极客都应该知道的Linux技巧
  14. C模拟实现点分十进制IP转换
  15. 关于延拓定理的一点注解
  16. 实验吧 天网管理系统writeup
  17. 基于python机票预定系统_机票预订系统课程设计.doc
  18. 胡适资助林语堂出国留学的故事
  19. cdrx8如何批量导出jpg_CDR怎么批量导出图片
  20. 英语中学生测试软件,中考英语口语测试软件.doc

热门文章

  1. 学校Win7 KMS激活服务器已经可以用了
  2. Python请求HTTPS证书错误
  3. c语言cast的用法,static_cast 用法
  4. python笔记 基础语法·第14课 【三局两胜角斗场小游戏,类与对象】
  5. 图像处理之Hobject与Mat互转
  6. Python100道经典练习题(一)
  7. Vue实现拖拽穿梭框功能四种方式
  8. Excel密码保护破解代码
  9. bitset 用法整理
  10. 1238: 盗梦空间X