0
내가 얻은 데이터에 대해 kmeans 클러스터링을 적용하려고합니다. 여기에 링크를 달고 있습니다. 확인해주십시오. 이 링크에서 제공하는 알고리즘에서 KMean을 사용한 이미지 그룹화
http://arxiv.org/ftp/arxiv/papers/0910/0910.1849.pdf
, 나는 블록 자르기 알고리즘의 3.2 즉의 4 점까지 했어요. 나는 앞으로 나아갈 방법을 모른다. 제발 도와주세요. 내가 구현 한 곳까지 코드가 아래에 나와 있습니다. 자바에 있습니다.import java.awt.image.*;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import java.util.ArrayList;
public class BlockTruncation{
public static void main(String[] args) throws IOException
{
BufferedImage bufImgs = ImageIO.read(new File("C://Users/Chandni/chandni's pics/2013-04-06-1449.jpg"));
ArrayList<Integer> RH=new ArrayList<Integer>();
ArrayList<Integer> RL=new ArrayList<Integer>();
ArrayList<Integer> GH=new ArrayList<Integer>();
ArrayList<Integer> GL=new ArrayList<Integer>();
ArrayList<Integer> BH=new ArrayList<Integer>();
ArrayList<Integer> BL=new ArrayList<Integer>();
/* ArrayList RL[]=new int[15];
int GH[]=new int[15];
int GL[]=new int[15];
int BH[]=new int[15];
int BL[]=new int[15];*/
int red[]=new int[(bufImgs.getWidth()* bufImgs.getHeight())];
int green[]=new int[(bufImgs.getWidth()* bufImgs.getHeight())];
int blue[]=new int[(bufImgs.getWidth()* bufImgs.getHeight())];
int c=0;
for(int r=0;r<bufImgs.getWidth();r++)
{
for(int s=0;s<bufImgs.getHeight();s++)
{
int color = bufImgs.getRGB(r, s);
red[c]=(color>>16) & 0xFF;
green[c]=(color>>8) & 0xFF;
blue[c]=color & 0xFF;
c++;
}
}
double mean_pix[]=new double[3];
mean_pix[0]=mean_no(red);
mean_pix[1]=mean_no(green);
mean_pix[2]=mean_no(blue);
for(int k=0;k<mean_pix.length;k++)
{
System.out.println(mean_pix[k]);
}
for(int p=0;p<red.length;p++)
{
if(red[p]<mean_pix[0])
{
/*for(int q=0;q<RL.length;q++)
{
RL[q]=red[p];
}*/
RL.add(red[p]);
}
else
{
/* for(int q=0;q<RL.length;q++)
{
RH[q]=red[p];
}*/
RH.add(red[p]);
}
}
System.out.println("RH :");
{
for(int g:RH)
{
System.out.println(g);
}
}
System.out.println("RL :");
{
for(int g:RL)
{
System.out.println(g);
}
}
}
static double mean_no(int[] col)
{
double sum=0;
for(int rgb:col)
{
sum+=rgb;
}
return (sum/col.length);
}
}
포인트 수 3.2.5는 실제로 3.3에서 설명 된 단계를 나타냅니다. K-Means *는 클러스터링 알고리즘입니다. 나는이 주제에 대해 읽으려면 시간이 필요하다고 생각합니다. – Matt