java实现图片对比功能_Java 照片对比功能的实现
package com.function;
import java.awt.image.BufferedImage;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.*;
import javax.imageio.ImageIO;
/*
* 这个是一个照片比对功能实现类
*/
public class Tools_PhotoMatching {
public int mactching(String contrast_photo ,String test_photo) {
int contras_rgb[] = new int[3];
int test_rgb[] = new int[3];
int k = 0;
File contrastfile = new File(contrast_photo); //对比照片路径
File testfile = new File(test_photo); //测试照片路径
BufferedImage contrasphoto = null;
BufferedImage testphoto = null;
try {
contrasphoto = ImageIO.read(contrastfile);
testphoto = ImageIO.read(testfile);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
int contraswidth = contrasphoto.getWidth();
int contrasheight = contrasphoto.getHeight();
int testwidth = testphoto.getWidth();
int testheight = testphoto.getHeight();
//File file = new File("C:\Users\prize\Desktop\TOOLS\DCIM\Camera\log.txt");
//File file1 = new File("C:\Users\prize\Desktop\TOOLS\DCIM\Camera\log1.txt");
try {
//FileWriter fileWriter = new FileWriter(file);
//FileWriter fileWriter1 = new FileWriter(file1);
//BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);
//BufferedWriter bufferedWriter2 = new BufferedWriter(fileWriter1);
for (int i = 0; i < testwidth; i++) {
for (int j = 0; j < testheight; j++) {
//StringBuffer astringBuffer1 = new StringBuffer();
//StringBuffer bstringBuffer1 = new StringBuffer();
int pixel1 = contrasphoto.getRGB(i, j);
int pixle2= testphoto.getRGB(i, j);
contras_rgb[0] = (pixel1 & 0xff0000) >> 16; //将值转化成16进制
contras_rgb[1] = (pixel1 & 0xff00) >> 8;
contras_rgb[2] = (pixel1 & 0xff);
//astringBuffer1.append(i+"行"+j+"列 R="+contras_rgb[0]+"G="+contras_rgb[1]+"B="+contras_rgb[2] );
//bufferedWriter.write(astringBuffer1.toString());
//bufferedWriter.newLine();
test_rgb[0] = (pixle2 & 0xff0000) >> 16;
test_rgb[1] = (pixle2 & 0xff00) >> 8;
test_rgb[2] = (pixle2 & 0xff);
//bstringBuffer1.append(i+"行"+j+"列 R="+test_rgb[0]+"G="+test_rgb[1]+"B="+test_rgb[2]);
//bufferedWriter2.write(bstringBuffer1.toString());
//bufferedWriter2.newLine();
int Difference_R = Math.abs(contras_rgb[0]-test_rgb[0]); //相减并且求绝对值
int Difference_G= Math.abs(contras_rgb[1]-test_rgb[1]);
int Difference_B= Math.abs(contras_rgb[2]-test_rgb[2]);
//System.out.println("第"+j+"次:"+Math.abs(Difference));
final int R = 35; //35
final int L = 130;
int Q = Difference_R+Difference_G+Difference_B;
if (Difference_R > R && Difference_G > R && Q>L) { //判断每个值的浮动不超过35
k++;
}else if (Difference_G >R && Difference_B>R && Q>L) {
k++;
}else if (Difference_R > R && Difference_B>R && Q>L) {
k++;
}
}
}
//bufferedWriter.close();
//bufferedWriter2.close();
//fileWriter.close();
//fileWriter1.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return k;
}
}
以上就是Java 照片对比功能实现类的详细内容,更多关于Java 照片对比的资料请关注云海天教程其它相关文章!
原文链接:https://www.cnblogs.com/guanxinjing/p/9708645.html
java实现图片对比功能_Java 照片对比功能的实现相关推荐
- java给图片加水印_Java 为图片添加水印(图片水印,文字水印)
Java 为图片添加水印(图片水印,文字水印) 2014-07-28·WeaponX 5267 次浏览 ```java import java.awt.Color; import java.awt.F ...
- java文件日志功能_JAVA文件下载功能问题解决日志
今天给报告系统做了个下载功能,遇到了挺多问题,通过查资料一一解决了. 1.首先遇到的问题是:java后台的输出流输出之后,没有任何报错,浏览器端不弹出保存文件的对话框,原本是ajax请求到后台的con ...
- java写直播功能_java直播功能
1.使用obs推流 ,srs作为直播服务器 video.js拉取rtmp媒体流. 2.srs配置,开始服务器录制直播视频.自定义录制视频存放地址,开启http回调,详看下方配置 https://git ...
- java给图片加水印_java如何给图片加水印
最近研究一下java如何给上传的图片加上水印,专门为这个功能写了一个方法类,然后再进行调用,代码如下:package WaterMark; import java.awt.AlphaComposite ...
- Java+OpenCV图片对比
近期老板让研究一下航拍.遥感影像对比功能,个人认为可行性并不高,没有知识储备,而且真要做好的话得当作产品去砸钱(老板:砸钱是不可能的,这辈子都不可能砸钱). 经过查询相关资料,OpenCV对图像的处理 ...
- java查询图片前台展示_Java +spring MVC 后台图片流在前台页面显示
用户上传图片后 (头像 or 个人照片等) ,需要在页面上显示,现在提供一种显示方式. 后台采用spring mvc的架构 前台是html Java代码: @ResponseBody @Request ...
- java给图片加水印_java中怎么样将水印加在图片的上面或者下面
展开全部 方法e68a84e8a2ad62616964757a686964616f31333239303331一: import java.awt.*; import java.awt.image.* ...
- java 给图片加马赛克_java处理图片--图片的缩放,旋转和马赛克化
下面是编程之家 jb51.cc 通过网络收集整理的代码片段. 编程之家小编现在分享给大家,也给大家做个参考. 这是我自己结合网上的一些资料封装的java图片处理类,支持图片的缩放,旋转,马赛克化.(转 ...
- java 裁剪图片变大_java上传图片放大(小图等比放大,大图等比裁剪)
java上传图片放大(小图等比放大,大图等比裁剪): package oms.util; import java.awt.Graphics; import java.awt.Image; import ...
最新文章
- 麦子学院彭亮python基础_麦子学院python
- linux c open fopen freopen 文件操作函数
- 打开闪光灯java代码_android 拍照带水印(可打开闪光灯功能)
- 用阿里云镜像解决Maven速度慢问题
- guice 实例_使用Google Guice消除实例之间的歧义
- JDK1.7和JDK1.8中HashMap是线程不安全的,并发容器ConcurrentHashMap模型
- React简介、虚拟DOM、Diff算法、创建React项目、JSX语法、组件、组件声明方式、组件传值props和state、组件的生命周期
- CompSNN: A Lightweight Spiking Neural Network Based on Spatiotemporally Compressive Spike Features
- 浙江电信网上营业厅的一个BUG(有更新)
- 参与社团活动的意义_大学参加社团活动有意义吗?
- Acrobat Pro DC 教程,如何删除PDF中的隐私信息?
- c java string转int_jni java和C之间的值传递(int String int[])
- 在售后技术服务里,Kubernetes到底是什么? | 凌云时刻
- Java:关于负数的向上转型
- c语言快速学习,怎么才能正确快速的学习c语言
- ssh 远程执行脚本(自己总结)
- 北京双线机房的优缺点分析
- 【Practical】产生不大于N的连续素数序列 —— 埃拉托色尼筛法
- python机器学习初探
- CDA数据分析师携手万宝盛华开启人才培训新篇章