Java 照片对比功能的实现
packagecom.function;
importjava.awt.image.BufferedImage;
importjava.io.BufferedWriter;
importjava.io.File;
importjava.io.FileWriter;
importjava.io.IOException;
importjava.util.*;
importjavax.imageio.ImageIO;
/*
*这个是一个照片比对功能实现类
*/
publicclassTools_PhotoMatching{
publicintmactching(Stringcontrast_photo,Stringtest_photo){
intcontras_rgb[]=newint[3];
inttest_rgb[]=newint[3];
intk=0;
Filecontrastfile=newFile(contrast_photo);//对比照片路径
Filetestfile=newFile(test_photo);//测试照片路径
BufferedImagecontrasphoto=null;
BufferedImagetestphoto=null;
try{
contrasphoto=ImageIO.read(contrastfile);
testphoto=ImageIO.read(testfile);
}catch(IOExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
intcontraswidth=contrasphoto.getWidth();
intcontrasheight=contrasphoto.getHeight();
inttestwidth=testphoto.getWidth();
inttestheight=testphoto.getHeight();
//Filefile=newFile("C:\\Users\\prize\\Desktop\\TOOLS\\DCIM\\Camera\\log.txt");
//Filefile1=newFile("C:\\Users\\prize\\Desktop\\TOOLS\\DCIM\\Camera\\log1.txt");
try{
//FileWriterfileWriter=newFileWriter(file);
//FileWriterfileWriter1=newFileWriter(file1);
//BufferedWriterbufferedWriter=newBufferedWriter(fileWriter);
//BufferedWriterbufferedWriter2=newBufferedWriter(fileWriter1);
for(inti=0;i>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();
intDifference_R=Math.abs(contras_rgb[0]-test_rgb[0]);//相减并且求绝对值
intDifference_G=Math.abs(contras_rgb[1]-test_rgb[1]);
intDifference_B=Math.abs(contras_rgb[2]-test_rgb[2]);
//System.out.println("第"+j+"次:"+Math.abs(Difference));
finalintR=35;//35
finalintL=130;
intQ=Difference_R+Difference_G+Difference_B;
if(Difference_R>R&&Difference_G>R&&Q>L){//判断每个值的浮动不超过35
k++;
}elseif(Difference_G>R&&Difference_B>R&&Q>L){
k++;
}elseif(Difference_R>R&&Difference_B>R&&Q>L){
k++;
}
}
}
//bufferedWriter.close();
//bufferedWriter2.close();
//fileWriter.close();
//fileWriter1.close();
}catch(Exceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
returnk;
}
}
以上就是Java照片对比功能实现类的详细内容,更多关于Java照片对比的资料请关注毛票票其它相关文章!