2012-02-03 7 views
1

이미지의 색상/품질을 다른 이미지와 비교하고 사용자 (이미지 소유자)에게 흑백과 흰색으로 인쇄해야 하는지를 결정해야합니다. 색상이 아닙니다.이미지에서 색상 정보 가져 오기

지금까지 내가 이미지를 분석하고 그것의 일부 데이터를 추출하고 있습니다 :

  • 내가 (이미지
  • 페이지 전체 색상의 비율에 컬러 픽셀을 찾아 다른 색상의 수/총 픽셀 수)

추가 분석을 위해이 이미지의 다른 특성이 필요할 수 있습니다. 이미지 분석에서 그 밖의 무엇이 중요합니까 (또는 내가 여기에서 빠졌는지) 아십니까?

답변

0

시간이 지나면 이미지 분석을 통해 많은 도움이 된 빠진 특성 (매우 중요 함)을 발견했습니다. 그 이름이 있는지 모르겠지만 나는 이미지의 평균 색상라고 불렀다 :

나는 이미지의 모든 픽셀을 통해 반복하고 각 색상을 계산했다

나는 또한의 정보를 검색 RGB 값 및 모든 픽셀의 모든 빨강, 녹색 및 파랑을 요약했습니다. 그냥 평균 색을 생각해 내고, 어떤 종류의 이미지를 비교하고 싶을 때 다시 내 목숨을 구했습니다.

코드는 다음과 같은 것입니다 :

File f = new File("image.jpg"); 
BufferedImage im = ImageIO.read(f); 

int tot = 0; 
int red = 0; 
int blue= 0; 
int green = 0; 
int w = im.getWidth(); 
int h = im.getHeight(); 

// Going over all the pixels 
for (int i=0;i<w;i++){ 
    for (int j=0;j<h;j++){ 
     int pix = im.getRGB(i, j); // 
      if (!sameARGB(pix)) { // Compares the RGB values 
       tot+=1; 
       red+=pix.getRed(); 
       green+=pix.getGreen(); 
       blue+=pix.getBlue(); 
      } 
    } 
} 

그리고 당신은이 같은 결과를 얻어야한다 :

// Percentage of color on the image 
double per = (double)tot/(h*w); 

// Average color <------------- 
Color c = new Color((double)red/tot,(double)green/tot,(double)blue/tot); 
관련 문제