文档章节

java版两图对比相似度

Mstart
 Mstart
发布于 2016/07/08 18:04
字数 207
阅读 356
收藏 4

import javax.imageio.*;

import java.awt.image.*;

import java.awt.*;//Color

import java.io.*;

public class PhotoDigest{

    public static void main(String[] args)throws Exception{

        String Ypath = "C:/Users/Administrator/Desktop/1.jpg";

        String Opath ="C:/Users/Administrator/Desktop/2.jpg";

        float percent = compare(getData(Ypath),getData(Opath));

        System.out.println("两张图片的相似度为:"+percent+"%");

    }

    public static int[] getData(String name)throws Exception{

        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"));

        //使用RGB颜色对比~

        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 就是所谓图形学当中的直方图的概念

        return data;

    }

    public static float compare(int[] s,int[] t){

        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;

    }

}

© 著作权归作者所有

Mstart
粉丝 10
博文 62
码字总数 17890
作品 0
南通
程序员
私信 提问
学生练习册扫描件和PDF的相似比

1.对比我们提供的图片(扫描件)或pdf,计算图形相似度 2.要求剥离文字和图形,两张图片返回相似度,多张图片返回相似度和图片组 3.图片类别:文字图片,几何图形、其他白描图片(线条画的实...

小源帅帅的
2017/12/15
14
4
基于java版jieba分词实现的tfidf关键词提取

版权声明:本文为博主原创文章,欢迎转载,但请注明出处,谢谢愿意分享知识的你~~ https://blog.csdn.net/qq_32690999/article/details/83246799 基于java版jieba分词实现的tfidf关键词提取 ...

蓝色枫魂
2018/10/21
0
0
关于数据检索的问题,有什么好的方法

目前项目有一个查重的功能,就是对比数据库表的某个字段进行相似度对比,找到相似度比较高的几行数据显示出来。请问各位有什么好的方法和工具可以指教下小弟,我们使用的语言的java,数据库是...

seandu
2012/09/07
268
0
JVM client模式和Server模式的区别

这里向大家描述一下JVM client模式和Server模式两者的区别和联系,JVM如果不显式指定是-Server模式还是-client模式,JVM能够根据下列原则进行自动判断(适用于Java5版本或者Java以上版本)。...

SeanCai
2014/04/12
297
0
Mahout下个性化推荐引擎Taste介绍

Mahout下个性化推荐引擎Taste介绍 Taste是 Apache Mahout 提供的一个个性化推荐引擎的高效实现,该引擎基于java实现,可扩展性强,同时在mahout中对一些推荐算法进行了MapReduce编程模式转化...

yuzh
2012/12/27
356
0

没有更多内容

加载失败,请刷新页面

加载更多

《Designing.Data-Intensive.Applications》笔记 四

第九章 一致性与共识 分布式系统最重要的的抽象之一是共识(consensus):让所有的节点对某件事达成一致。 最终一致性(eventual consistency)只提供较弱的保证,需要探索更高的一致性保证(stro...

丰田破产标志
今天
6
0
docker 使用mysql

1, 进入容器 比如 myslq1 里面进行操作 docker exec -it mysql1 /bin/bash 2. 退出 容器 交互: exit 3. mysql 启动在容器里面,并且 可以本地连接mysql docker run --name mysql1 --env MY...

之渊
今天
7
0
python数据结构

1、字符串及其方法(案例来自Python-100-Days) def main(): str1 = 'hello, world!' # 通过len函数计算字符串的长度 print(len(str1)) # 13 # 获得字符串首字母大写的...

huijue
今天
5
0
OSChina 周日乱弹 —— 我,小小编辑,食人族酋长

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @宇辰OSC :分享娃娃的单曲《飘洋过海来看你》: #今日歌曲推荐# 《飘洋过海来看你》- 娃娃 手机党少年们想听歌,请使劲儿戳(这里) @宇辰OSC...

小小编辑
今天
1K
11
MongoDB系列-- SpringBoot 中对 MongoDB 的 基本操作

SpringBoot 中对 MongoDB 的 基本操作 Database 库的创建 首先 在MongoDB 操作客户端 Robo 3T 中 创建数据库: 增加用户User: 创建 Collections 集合(类似mysql 中的 表): 后面我们大部分都...

TcWong
今天
40
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部