没有合适的资源?快使用搜索试试~ 我知道了~
图像相似度检测之直方图相交(基于颜色的图像检索)
5星 · 超过95%的资源 需积分: 40 343 下载量 5 浏览量
2014-06-18
22:02:55
上传
评论 7
收藏 5KB TXT 举报
温馨提示
试读
6页
图像相似度检测之直方图相交(基于颜色的图像检索),传统直方图相交法,巴士系数法:欧式距离法
资源推荐
资源详情
资源评论
package com.gao;
import java.awt.image.BufferedImage;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import javax.imageio.ImageIO;
public class HistogramRetrieval {
// 传统的直方图相交法 统计RGB 归一化
public static double [][] GetHistogram1(BufferedImage img)
{
double [][] histgram=new double [3][256];
int width=img.getWidth();//图片宽度
int height=img.getHeight();//图片高度
int pix[]= new int [width*height];//像素个数
int r,g,b;//记录R、G、B的值
pix = img.getRGB(0, 0, width, height, pix, 0, width);//将图片的像素值存到数组里
for(int i=0; i<width*height; i++)
{
r = pix[i]>>16 & 0xff; //提取R
g = pix[i]>>8 & 0xff;
b = pix[i] & 0xff;
histgram[0][r] ++;
histgram[1][g] ++;
histgram[2][b] ++;
}
import java.awt.image.BufferedImage;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import javax.imageio.ImageIO;
public class HistogramRetrieval {
// 传统的直方图相交法 统计RGB 归一化
public static double [][] GetHistogram1(BufferedImage img)
{
double [][] histgram=new double [3][256];
int width=img.getWidth();//图片宽度
int height=img.getHeight();//图片高度
int pix[]= new int [width*height];//像素个数
int r,g,b;//记录R、G、B的值
pix = img.getRGB(0, 0, width, height, pix, 0, width);//将图片的像素值存到数组里
for(int i=0; i<width*height; i++)
{
r = pix[i]>>16 & 0xff; //提取R
g = pix[i]>>8 & 0xff;
b = pix[i] & 0xff;
histgram[0][r] ++;
histgram[1][g] ++;
histgram[2][b] ++;
}
double red =0,green=0,blue=0;
for(int j=0;j<256;j++){
red+=histgram[0][j];
green+=histgram[1][j];
blue+=histgram[2][j];
}
for(int j=0;j<256;j++)//将直方图每个像素值的总个数进行量化
{
histgram[0][j]/=red;
histgram[1][j]/=green;
histgram[2][j]/=blue;
}
return histgram;
}
//// 传统的直方图相交法 统计RGB 归一化 后用交来求两个图片的相似度
public static double GetSimilarity1(double [][] Rhistgram,double [][] Dhistgram)
{
double similar=(double)0.0;//相似度
for(int i=0;i<3;i++)
{
for(int j=0;j<Rhistgram[i].length;j++)
{
similar+=Math.min(Rhistgram[i][j], Dhistgram[i][j]);
}
}
similar=similar/3;
return similar;
}
//欧式距离求图片的相似度
public static double GetSimilarity2(double [][] Rhistgram,double [][] Dhistgram)
for(int j=0;j<256;j++){
red+=histgram[0][j];
green+=histgram[1][j];
blue+=histgram[2][j];
}
for(int j=0;j<256;j++)//将直方图每个像素值的总个数进行量化
{
histgram[0][j]/=red;
histgram[1][j]/=green;
histgram[2][j]/=blue;
}
return histgram;
}
//// 传统的直方图相交法 统计RGB 归一化 后用交来求两个图片的相似度
public static double GetSimilarity1(double [][] Rhistgram,double [][] Dhistgram)
{
double similar=(double)0.0;//相似度
for(int i=0;i<3;i++)
{
for(int j=0;j<Rhistgram[i].length;j++)
{
similar+=Math.min(Rhistgram[i][j], Dhistgram[i][j]);
}
}
similar=similar/3;
return similar;
}
//欧式距离求图片的相似度
public static double GetSimilarity2(double [][] Rhistgram,double [][] Dhistgram)
剩余5页未读,继续阅读
Sunshine_gao
- 粉丝: 108
- 资源: 21
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
前往页