2013-08-07 7 views
2

내 응용 프로그램은 이미지를 캡처하고 필터를 적용하여 이미지 RGB 값을 수정합니다.이미지의 RGB 값의 히스토그램을 표시하는 방법은 무엇입니까?

일단 수정되면 각 색상 (빨강, 초록, 파랑)의 히스토그램을 이미지 자체 위에 표시하고자합니다.

저는 RGB 값을 얻는 방법을 이미 알고 있고 이미 비트 맵을 얻는 방법을 알고 있습니다. 그 방법을 알 수는 없습니다. RGB 값에 대한

코드 :

int[] pixels = new int[width*height]; 
    int index = 0; 
    image.getPixels(pixels, 0, width, 0, 0, width, height); 
    Bitmap returnBitmap = Bitmap.createBitmap(width, height, 
      Bitmap.Config.ARGB_8888); 

    for (int x = 0; x < width; x++) { 
     for (int y = 0; y < height; y++) { 
      A = (pixels[index] >> 24) & 0xFF; 
      R = (pixels[index] >> 16) & 0xFF; 
      G = (pixels[index] >> 8) & 0xFF; 
      B = pixels[index] & 0xFF; 
          ++index; 

        } 
      } 

답변

5

우리는 비슷한 일을했다.

int color = bmp.getPixel(i, j); 
int[] rgbValues = new int[]{ 
       (color >> 16) & 0xff, //red 
       (color >> 8) & 0xff, //green 
       (color  ) & 0xff //blue 
      }; 

편집 :
I 픽셀의 색상을 얻을 수있는 코드 조각 다음

Bitmap bmp = BitmapFactory.decodeResource(<youImageView>.getResources(), R.drawable.some_drawable); 

우리는 다음 각 픽셀에 걸쳐 반복하여 사용 : 우리와 이미지의 비트 맵을 가지고

int color = bmp.getPixel(i, j); 
int[] rgbValues = new int[]{ 
       (color >> 24) & 0xff, //alpha 
       (color >> 16) & 0xff, //red 
       (color >> 8) & 0xff, //green 
       (color  ) & 0xff //blue 
      }; 

,369 : 당신이이 INSEAD를 사용하여 불투명도를 얻을 수 읽기

이미 값이있는 경우 그래프를 만들려면 androidplot을 권합니다. 사용하기 쉬운 몇 가지 예가 있습니다. 나는 막대 차트로 일하지 않았지만 선 차트는 정상적으로 작동했습니다. Here은 androidplot 용 BarCharts의 예입니다.
그리고 다른 값을 합산 한 다음 정규화하려고합니다 (원한다면).


마침내 당신이 FrameLayout이 같은 레이아웃을 만들 수 있습니다, 그래프를 표시하려면 다음 this 당신이 z 순서를 작동 도움이 될 수 있습니다. 이제해야 할 일은 그래프가 포함 된 레이아웃 부분을 표시하거나 숨 깁니다. (View.setVisibility)

+0

안녕하세요, 업데이트 된 질문을 참조하십시오. 이미 RGB 값을 얻는 방법을 알고 있습니다. 캡처 한 이미지를 기반으로 어떻게 그릴 수 있는지 잘 모릅니다. – User1204501

+0

안녕하세요, 편집 된 버전의 답변을 참조하십시오. 희망이 도움이됩니다. – MalaKa

관련 문제