欢迎来到天天文库
浏览记录
ID:38623253
大小:58.00 KB
页数:18页
时间:2019-06-16
《基于内容的图像检索-聚类分析》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、//导入必要的包importjava.awt.image.BufferedImage;importjavax.imageio.ImageIO;importjava.io.*;importjava.util.Scanner;importjava.util.Arrays;importjavax.swing.*;importjava.awt.*;/***基于k-means的简单图像检索*@authorxuweibin**/classCBIR{privateFilesrcFile;//图像路径privatebooleanbFile;pri
2、vateFile[]file;//读入图片文件privateBufferedImage[]bi;privateintimNum;//图像个数privateintwidth;//图像宽度privateintheight;//图像高度privateintminx;//图像最小横坐标privateintminy;//图像最小纵坐标publicint[][]rgb;//图像rgb颜色值privatedouble[][]rate;//图像频率数组privatestaticfinalintN=65536;//图像像素个数,256*256,可以
3、智能化privatestaticfinalintM=8;//颜色级数,可以智能化privatestaticfinalintIN=6;//图像个数,可以改变privatestaticboolean[]flag;//标记数组privateintIt1;//初始化簇1privateintIt2;//初始化簇2privatedoublecenter1[];//簇1中心privatedoublecenter2[];//簇2中心privatedoubledis1;//到簇1中心的距离privatedoubledis2;//到簇2中心的距离/*
4、**在构造函数中初始化**/publicCBIR(){srcFile=null;bFile=false;file=null;imNum=0;width=0;height=0;minx=0;miny=0;rgb=null;rate=null;flag=null;It1=It2=-1;center1=center2=null;dis1=dis2=0;}/***读入图像文件流**/publicvoidreadImage(){srcFile=newFile("image/");bFile=srcFile.exists();if(!bFil
5、e
6、
7、!srcFile.isDirectory()
8、
9、!srcFile.canRead()){try{srcFile.createNewFile();}catch(IOExceptione){e.printStackTrace();}}else{file=srcFile.listFiles();imNum=file.length;}}/***获得图像的rgb,并转化为亮度值**/publicvoidgetRGB(){readImage();bi=newBufferedImage[imNum];for(inti=0;i10、i++){try{bi[i]=ImageIO.read(file[i]);}catch(IOExceptione){System.out.println(e);}}rgb=newint[imNum][];for(intk=0;k11、;i>16;intg=(pixel&0xff00)>>8;intb=(pixel&0xff);rgb[k][count++]=(int)(r*0.299+g*0.586+b*0.114);//转化为亮度值}}//for(inti=0;i12、[j]);//}}/***获得图像的频率数组**/publicvoidgetRATE(){getRGB();rate=newdouble[imNum][M];for(intj=0;j
10、i++){try{bi[i]=ImageIO.read(file[i]);}catch(IOExceptione){System.out.println(e);}}rgb=newint[imNum][];for(intk=0;k11、;i>16;intg=(pixel&0xff00)>>8;intb=(pixel&0xff);rgb[k][count++]=(int)(r*0.299+g*0.586+b*0.114);//转化为亮度值}}//for(inti=0;i12、[j]);//}}/***获得图像的频率数组**/publicvoidgetRATE(){getRGB();rate=newdouble[imNum][M];for(intj=0;j
11、;i>16;intg=(pixel&0xff00)>>8;intb=(pixel&0xff);rgb[k][count++]=(int)(r*0.299+g*0.586+b*0.114);//转化为亮度值}}//for(inti=0;i12、[j]);//}}/***获得图像的频率数组**/publicvoidgetRATE(){getRGB();rate=newdouble[imNum][M];for(intj=0;j
12、[j]);//}}/***获得图像的频率数组**/publicvoidgetRATE(){getRGB();rate=newdouble[imNum][M];for(intj=0;j
此文档下载收益归作者所有