最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java 照片對比功能的實現(xiàn)

 更新時間:2020年12月02日 17:21:59   作者:觀心靜  
這篇文章主要介紹了Java 照片比對功能實現(xiàn)類的示例代碼,幫助大家更好的理解和學(xué)習(xí)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;

/*
 * 這個是一個照片比對功能實現(xiàn)類
 */
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; //將值轉(zhuǎn)化成16進(jìn)制
    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 照片對比功能實現(xiàn)類的詳細(xì)內(nèi)容,更多關(guān)于Java 照片對比的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 詳解如何使用maven生成可以執(zhí)行的jar

    詳解如何使用maven生成可以執(zhí)行的jar

    這篇文章主要介紹了詳解如何使用maven生成可以執(zhí)行的jar,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-06-06
  • 零基礎(chǔ)寫Java知乎爬蟲之獲取知乎編輯推薦內(nèi)容

    零基礎(chǔ)寫Java知乎爬蟲之獲取知乎編輯推薦內(nèi)容

    上篇文章我們拿百度首頁做了個小測試,今天我們來個復(fù)雜的,直接抓取知乎編輯推薦的內(nèi)容,小伙伴們可算松了口氣,終于進(jìn)入正題了,哈哈。
    2014-11-11
  • spring boot上傳文件出錯問題如何解決

    spring boot上傳文件出錯問題如何解決

    這篇文章主要介紹了spring boot上傳文件出錯問題如何解決,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-01-01
  • spring-boot react如何一步一步實現(xiàn)增刪改查

    spring-boot react如何一步一步實現(xiàn)增刪改查

    這篇文章主要介紹了spring-boot react如何一步一步實現(xiàn)增刪改查,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-11-11
  • JAVA工程中引用本地jar的3種常用簡單方式

    JAVA工程中引用本地jar的3種常用簡單方式

    Jar文件的全稱是Java Archive File即Java歸檔文件,主要是對class文件進(jìn)行壓縮,是一種壓縮文件,和常見的zip壓縮文件兼容,下面這篇文章主要給大家介紹了關(guān)于JAVA工程中引用本地jar的3種常用簡單方式,需要的朋友可以參考下
    2024-03-03
  • Spring中的ImportBeanDefinitionRegistrar接口詳解

    Spring中的ImportBeanDefinitionRegistrar接口詳解

    這篇文章主要介紹了Spring中的ImportBeanDefinitionRegistrar接口詳解,ImportBeanDefinitionRegistrar接口是也是spring的擴(kuò)展點之一,它可以支持我們自己寫的代碼封裝成BeanDefinition對象,注冊到Spring容器中,功能類似于注解@Service @Component,需要的朋友可以參考下
    2023-09-09
  • IDEA2020.3.2版本自動注釋類和方法注釋模板配置步驟詳解

    IDEA2020.3.2版本自動注釋類和方法注釋模板配置步驟詳解

    這篇文章主要介紹了IDEA2020.3.2版本自動注釋類和方法注釋模板配置步驟,本文給大家分享了我自己創(chuàng)建過程通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-03-03
  • Java中Map遍歷的九種方式匯總

    Java中Map遍歷的九種方式匯總

    這篇文章主要介紹了Java中九種?Map?的遍歷方式匯總的相關(guān)資料,需要的朋友可以參考下
    2022-11-11
  • spring動態(tài)注冊bean?AOP失效原理解析

    spring動態(tài)注冊bean?AOP失效原理解析

    這篇文章主要為大家介紹了spring動態(tài)注冊bean使AOP失效原理解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • Mybatis中關(guān)于自定義mapper.xml時,參數(shù)傳遞的方式及寫法

    Mybatis中關(guān)于自定義mapper.xml時,參數(shù)傳遞的方式及寫法

    這篇文章主要介紹了Mybatis中關(guān)于自定義mapper.xml時,參數(shù)傳遞的方式及寫法,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-12-12

最新評論

永顺县| 开江县| 顺义区| 明溪县| 米脂县| 乐东| 宁武县| 自贡市| 扎兰屯市| 阳西县| 临安市| 云梦县| 肇源县| 陈巴尔虎旗| 呼伦贝尔市| 巴林左旗| 和政县| 米易县| 贺兰县| 万源市| 宜宾市| 长治市| 泊头市| 新和县| 中超| 碌曲县| 龙川县| 安达市| 大理市| 界首市| 崇左市| 建宁县| 潮安县| 九江县| 潜江市| 汕头市| 内丘县| 顺昌县| 左云县| 怀远县| 颍上县|