[汇编]基于欧式距离的图像检索例子
基于欧式距离的图像检索例子
import java.awt.image.BufferedImage; import javax.imageio.ImageIO;
import java.io.*;
/**
* 基于欧式距离的简单图像检索
* @author xuweibin
* */
class CBIR
{
private File f1;
private BufferedImage b1;
private int width; //图像宽度
private int height; //图像高度
private int minx; //图像最小横坐标
private int miny; //图像最小纵坐标
private int[]rgb1; //图像rgb颜色值
private int[]rgb2;
private double[] rate1; //图像频率数组
private double[] rate2;
private static final int N=65536; //图像像素个数,256*256
private static final int M=8; //颜色级数
private static final int IM=5; //图像个数
public CBIR()
{
f1=null;
b1=null;
width=0;
height=0;
minx=0;
miny=0;
rgb1=null;
rgb2=null;
rate1=null;
rate2=null;
rate1=rate2=null;
}
/**
* 获得某个图像的RGB值
* */
private int[] getRGB(int k)
{
try{
f1=new File(k+".bmp");
b1=ImageIO.read(f1);
}catch(Exception e){e.printStackTrace();}
width=b1.getWidth();
height=b1.getHeight();
minx=b1.getMinX();
miny=b1.getMinY();
int[] rgb=new int[width*height];
int count=0;
for(int i=minx;i>16;
int g=(pixel&0xff00)>>8;
int b=(pixel&0xff);
rgb[count++]=(int)(r*0.299+g*0.586+b*0.114);//转化为亮度值
}
return rgb;
}
/**
* 获得某个图像的频率数组
* 这里级数M可以设计的更加智能,例如外部输入控制
* */
private double[] getRATE(int rgb[])
{
int[] temp=new int[M];
for(int i=0;i
本文档为【[汇编]基于欧式距离的图像检索例子】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。