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 照片对比功能的实现相关推荐

  1. java给图片加水印_Java 为图片添加水印(图片水印,文字水印)

    Java 为图片添加水印(图片水印,文字水印) 2014-07-28·WeaponX 5267 次浏览 ```java import java.awt.Color; import java.awt.F ...

  2. java文件日志功能_JAVA文件下载功能问题解决日志

    今天给报告系统做了个下载功能,遇到了挺多问题,通过查资料一一解决了. 1.首先遇到的问题是:java后台的输出流输出之后,没有任何报错,浏览器端不弹出保存文件的对话框,原本是ajax请求到后台的con ...

  3. java写直播功能_java直播功能

    1.使用obs推流 ,srs作为直播服务器 video.js拉取rtmp媒体流. 2.srs配置,开始服务器录制直播视频.自定义录制视频存放地址,开启http回调,详看下方配置 https://git ...

  4. java给图片加水印_java如何给图片加水印

    最近研究一下java如何给上传的图片加上水印,专门为这个功能写了一个方法类,然后再进行调用,代码如下:package WaterMark; import java.awt.AlphaComposite ...

  5. Java+OpenCV图片对比

    近期老板让研究一下航拍.遥感影像对比功能,个人认为可行性并不高,没有知识储备,而且真要做好的话得当作产品去砸钱(老板:砸钱是不可能的,这辈子都不可能砸钱). 经过查询相关资料,OpenCV对图像的处理 ...

  6. java查询图片前台展示_Java +spring MVC 后台图片流在前台页面显示

    用户上传图片后 (头像 or 个人照片等) ,需要在页面上显示,现在提供一种显示方式. 后台采用spring mvc的架构 前台是html Java代码: @ResponseBody @Request ...

  7. java给图片加水印_java中怎么样将水印加在图片的上面或者下面

    展开全部 方法e68a84e8a2ad62616964757a686964616f31333239303331一: import java.awt.*; import java.awt.image.* ...

  8. java 给图片加马赛克_java处理图片--图片的缩放,旋转和马赛克化

    下面是编程之家 jb51.cc 通过网络收集整理的代码片段. 编程之家小编现在分享给大家,也给大家做个参考. 这是我自己结合网上的一些资料封装的java图片处理类,支持图片的缩放,旋转,马赛克化.(转 ...

  9. java 裁剪图片变大_java上传图片放大(小图等比放大,大图等比裁剪)

    java上传图片放大(小图等比放大,大图等比裁剪): package oms.util; import java.awt.Graphics; import java.awt.Image; import ...

最新文章

  1. 麦子学院彭亮python基础_麦子学院python
  2. linux c open fopen freopen 文件操作函数
  3. 打开闪光灯java代码_android 拍照带水印(可打开闪光灯功能)
  4. 用阿里云镜像解决Maven速度慢问题
  5. guice 实例_使用Google Guice消除实例之间的歧义
  6. JDK1.7和JDK1.8中HashMap是线程不安全的,并发容器ConcurrentHashMap模型
  7. React简介、虚拟DOM、Diff算法、创建React项目、JSX语法、组件、组件声明方式、组件传值props和state、组件的生命周期
  8. CompSNN: A Lightweight Spiking Neural Network Based on Spatiotemporally Compressive Spike Features
  9. 浙江电信网上营业厅的一个BUG(有更新)
  10. 参与社团活动的意义_大学参加社团活动有意义吗?
  11. Acrobat Pro DC 教程,如何删除PDF中的隐私信息?
  12. c java string转int_jni java和C之间的值传递(int String int[])
  13. 在售后技术服务里,Kubernetes到底是什么? | 凌云时刻
  14. Java:关于负数的向上转型
  15. c语言快速学习,怎么才能正确快速的学习c语言
  16. ssh 远程执行脚本(自己总结)
  17. 北京双线机房的优缺点分析
  18. 【Practical】产生不大于N的连续素数序列 —— 埃拉托色尼筛法
  19. python机器学习初探
  20. CDA数据分析师携手万宝盛华开启人才培训新篇章

热门文章

  1. 在预加载新闻时,怎么去掉初始化内容的显示尴尬?
  2. tar目录的-P参数
  3. Java线程(二):线程同步synchronized和volatile
  4. 模拟窗口效果 Jquery
  5. 一、搭建Extjs 4.1开发环境
  6. 阿里云POLARDB荣膺2019中国数据库年度最佳创新产品
  7. ucore-lab1-练习6report
  8. iptables 实际操作 之 规则查询 2
  9. #51CTO学院四周年# 51CTO与我的大学生活
  10. MyBatis学习总结(七)——Mybatis缓存