java 图片相似搜索_JAVA比较两张图片相似度的方法
本文实例讲述了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比较两张图片相似度的方法相关推荐
- java 图片相似搜索_java获取两张图片的相似度
package com.sinosoft.lis.utils; import java.awt.Graphics2D; import java.awt.color.ColorSpace; import ...
- python相似图片计算_计算两张图片相似度的方法总结
python工具包-pyssim 简介 python工具包,用来计算图像之间的结构相似性 (Structural Similarity Image Metric: SSIM).结构相似性介绍详见:ht ...
- 两个图片叠加在一起css,css两张图片怎么叠加在一起?
css实现两张图片叠加在一起的方法:首先添加2个img标签:然后设置它们的css样式为position:absolute:最后设置其中一个img样式为left:120px即可看见效果. 使用css把两 ...
- 如何计算两幅图像的相似度,计算两张图片相似度
怎么对比两张图片的相似度 1.首先打开微信,选择底部"发现".如图所示.2.然后在点击进入"小程序".如图所示.3.然后输入"腾讯AI体验中心&quo ...
- java两张png图片合成_java将两张图片合成
将两张图片合成一张新的图片 /** * 图片合成 * * @param backgroundPath 底图 * @param smallPath 小图 * @param type 生成图片类型jpg, ...
- html 图片能重叠吗,css两张图片怎么叠加在一起?
1.新建一个html文件,命名为test.html,用于讲解css怎么把两个图片叠加在一起. Document 2.新建两个div,一个是class属性为a的div,另一个是class属性为b的div ...
- OpenCV将两图片进行混合,达到两张图片合并成一张图片的效果
1.概述 案例:将两张图片混合成一张图片,并且原图的元素要保留到同一张图片中. 2.示例图片 2.1.混合后的图片 2.2.原始的两张图片 3.示例代码 //将两张图片进行混合 #include &l ...
- python计算两张图片相似度,python 图片相似度匹配
如何使用python来判断图片相似度 . fromPILimportImageimportos#importhashlibdefgetGray(image_file):tmpls=[]forhinra ...
- java保留小数_java保留两位小数4种方法
java保留两位小数4种方法 方法一:String的format方法(推荐) double f = 111231.5585; System.out.println(String.format(&quo ...
最新文章
- 一群猥琐至极的大学舍友,我有点想你们了...附骚图
- matlab 二次指数平滑法预测
- xp系统的计算机管理中用户在哪里,XP系统设备管理器中一片空白怎么修复?
- Cortex-M3 异常中断向量表
- Windows下安装Anaconda3与配置
- 【Java Web开发指南】ORM一些基础问题整理
- QT之QHash简介
- bootstrap的分页
- C#判断点和直线的位置关系
- 查看mysql服务的可视化_Prometheus 监控Mysql服务器及Grafana可视化
- junetxtdb.class.php,PHP-site
- 2-7 微信摇一摇_实现分析
- 每个极客都应该知道的Linux技巧
- C模拟实现点分十进制IP转换
- 关于延拓定理的一点注解
- 实验吧 天网管理系统writeup
- 基于python机票预定系统_机票预订系统课程设计.doc
- 胡适资助林语堂出国留学的故事
- cdrx8如何批量导出jpg_CDR怎么批量导出图片
- 英语中学生测试软件,中考英语口语测试软件.doc