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

Java實(shí)現(xiàn)圖片比對(duì)算法

 更新時(shí)間:2022年04月21日 15:27:43   作者:天生要強(qiáng)注定要涼  
這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)圖片比對(duì)算法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

采用直方圖原理算法比對(duì)圖片的細(xì)微差別效果比較好,以下兩張區(qū)別很小的圖片識(shí)別效果如下:

識(shí)別結(jié)果:

主要代碼如下:

import javax.imageio.*;
import java.awt.image.*;
import java.awt.*;
import java.io.*;
?
public class PhotoDigest {
? ? public static void main(String[] args) throws Exception {
? ? ? ? float percent = compare(getData("/Users/sun/Downloads/1.jpg"),
? ? ? ? ? ? ? ? getData("/Users/sun/Downloads/3.jpg"));
? ? ? ? if (percent == 0) {
? ? ? ? ? ? System.out.println("無(wú)法比較");
? ? ? ? } else {
? ? ? ? ? ? System.out.println("兩張圖片的相似度為:" + percent + "%");
? ? ? ? }
? ? }
?
? ? public static int[] getData(String name) {
? ? ? ? try {
? ? ? ? ? ? BufferedImage img = ImageIO.read(new File(name));
? ? ? ? ? ? BufferedImage slt = new BufferedImage(100, 100,
? ? ? ? ? ? ? ? ? ? BufferedImage.TYPE_INT_RGB);
? ? ? ? ? ? slt.getGraphics().drawImage(img, 0, 0, 100, 100, null);
? ? ? ? ? ? // ImageIO.write(slt,"jpeg",new File("slt.jpg"));
? ? ? ? ? ? int[] data = new int[256];
? ? ? ? ? ? for (int x = 0; x < slt.getWidth(); x++) {
? ? ? ? ? ? ? ? for (int y = 0; y < slt.getHeight(); y++) {
? ? ? ? ? ? ? ? ? ? int rgb = slt.getRGB(x, y);
? ? ? ? ? ? ? ? ? ? Color myColor = new Color(rgb);
? ? ? ? ? ? ? ? ? ? int r = myColor.getRed();
? ? ? ? ? ? ? ? ? ? int g = myColor.getGreen();
? ? ? ? ? ? ? ? ? ? int b = myColor.getBlue();
? ? ? ? ? ? ? ? ? ? data[(r + g + b) / 3]++;
? ? ? ? ? ? ? ? }
? ? ? ? ? ? }
? ? ? ? ? ? // data 就是所謂圖形學(xué)當(dāng)中的直方圖的概念
? ? ? ? ? ? return data;
? ? ? ? } catch (Exception exception) {
? ? ? ? ? ? System.out.println("有文件沒(méi)有找到,請(qǐng)檢查文件是否存在或路徑是否正確");
? ? ? ? ? ? return null;
? ? ? ? }
? ? }
?
? ? public static float compare(int[] s, int[] t) {
? ? ? ? try {
? ? ? ? ? ? float result = 0F;
? ? ? ? ? ? for (int i = 0; i < 256; i++) {
? ? ? ? ? ? ? ? int abs = Math.abs(s[i] - t[i]);
? ? ? ? ? ? ? ? int max = Math.max(s[i], t[i]);
? ? ? ? ? ? ? ? result += (1 - ((float) abs / (max == 0 ? 1 : max)));
? ? ? ? ? ? }
? ? ? ? ? ? return (result / 256) * 100;
? ? ? ? } catch (Exception exception) {
? ? ? ? ? ? return 0;
? ? ? ? }
? ? }
}

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java中BigDecimal類的使用詳解

    Java中BigDecimal類的使用詳解

    這篇文章主要介紹了Java中BigDecimal類的使用詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • java實(shí)現(xiàn)猜拳小游戲

    java實(shí)現(xiàn)猜拳小游戲

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)猜拳小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-01-01
  • Springboot如何獲取配置文件application.yml中自定義的變量并使用

    Springboot如何獲取配置文件application.yml中自定義的變量并使用

    這篇文章主要介紹了Springboot中獲取配置文件(application.yml)中自定義的變量并使用,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-09-09
  • Java?Git?Commit?Message使用規(guī)范

    Java?Git?Commit?Message使用規(guī)范

    這篇文章主要介紹了Java?Git?Commit?Message使用規(guī)范,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,感興趣的小伙伴可以參考一下,希望對(duì)你的學(xué)習(xí)有所幫助
    2022-08-08
  • Springboot Autowried及Resouce使用對(duì)比解析

    Springboot Autowried及Resouce使用對(duì)比解析

    這篇文章主要介紹了Springboot Autowried及Resouce使用對(duì)比解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-06-06
  • 如何在spring boot中進(jìn)行參數(shù)校驗(yàn)示例詳解

    如何在spring boot中進(jìn)行參數(shù)校驗(yàn)示例詳解

    這篇文章主要介紹了如何在spring-boot中進(jìn)行參數(shù)校驗(yàn)及l(fā)ombok的使用詳解,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-05-05
  • Java實(shí)現(xiàn)中序表達(dá)式的實(shí)例代碼

    Java實(shí)現(xiàn)中序表達(dá)式的實(shí)例代碼

    這篇文章主要介紹了Java實(shí)現(xiàn)中序表達(dá)式的實(shí)例代碼,需要的朋友可以參考下
    2018-08-08
  • SpringBoot引入Redis報(bào)Redis?command?timed?out兩種異常情況

    SpringBoot引入Redis報(bào)Redis?command?timed?out兩種異常情況

    這篇文章主要給大家介紹了關(guān)于SpringBoot引入Redis報(bào)Redis?command?timed?out兩種異常情況的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-08-08
  • scala中常用特殊符號(hào)詳解

    scala中常用特殊符號(hào)詳解

    這篇文章主要介紹了scala中常用特殊符號(hào)詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • Java實(shí)現(xiàn)圖片模糊效果詳解

    Java實(shí)現(xiàn)圖片模糊效果詳解

    圖片模糊是圖像處理中的一種常見(jiàn)效果,它通過(guò)平均周?chē)袼氐念伾珌?lái)使圖像變得模糊,下面我們來(lái)看看如何使用Swing庫(kù)實(shí)現(xiàn)圖片模糊效果吧
    2025-02-02

最新評(píng)論

阜阳市| 隆昌县| 永年县| 和平区| 临泉县| 宁明县| 孟连| 称多县| 利辛县| 永修县| 娄烦县| 青冈县| 贵港市| 昭平县| 渝北区| 江口县| 鹤岗市| 达孜县| 长岭县| 阿拉善右旗| 施甸县| 仪陇县| 方山县| 平山县| 江北区| 尚义县| 汝阳县| 横山县| 马山县| 利津县| 广河县| 仪征市| 来凤县| 乌兰县| 建昌县| 濮阳县| 安西县| 珠海市| 沙雅县| 宽甸| 珲春市|