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照片对比的资料请关注毛票票其它相关文章!