다른 모든 색상은 무시하고 싶습니다. 난 그냥 흰색과 노란색 사이의 색상을 계산 싶어요 (밝은 노란색, 밝은 노란색 .. 흰색까지). 그런 다음 특정 이미지가 노란색인지 평가하십시오. 그게 가능하니?노랑색이 어떻게 나타나는지 어떻게 감지 할 수 있습니까?
저는 Bitmap.getPixel()
으로 놀았지만 다른 색상을 무시하는 방법을 알 수 없습니다. 이 예에서
노란 색만 감지하려면 어떻게해야합니까?
다른 모든 색상은 무시하고 싶습니다. 난 그냥 흰색과 노란색 사이의 색상을 계산 싶어요 (밝은 노란색, 밝은 노란색 .. 흰색까지). 그런 다음 특정 이미지가 노란색인지 평가하십시오. 그게 가능하니?노랑색이 어떻게 나타나는지 어떻게 감지 할 수 있습니까?
저는 Bitmap.getPixel()
으로 놀았지만 다른 색상을 무시하는 방법을 알 수 없습니다. 이 예에서
노란 색만 감지하려면 어떻게해야합니까?
글쎄, 나는 픽셀의 색조에 중점을 둘 것이다. 이이 범위에 있거나 어디 다음 정량화 할 수
// get HSV values for the pixel's colour
float[] pixelColorHsv = new float[3];
Color.colorToHSV(Bitmap.getPixel(x,y), pixelColorHsv);
가 무엇을 할 수 있습니다 노란색이지만 범위는 72과 49 사이의 수 (당신은 아이디어를 얻을 this tool로 재생할 수) :이 코드를 사용하여 밝기와 채도가 얼마나 높거나 낮은가.
Bitmap.getPixel(int x, int y)
메서드는 해당 픽셀의 RGB 값을 가진 Color
개체를 반환합니다. 노란색은 빨간색과 녹색의 조합이므로 곧은 노란색 RGB 트리플은 (255, 255, 0)이됩니다. 맞습니까? 어둡게되면 적색과 녹색 값을 모두 낮 춥니 다. 당신이 더 밝게되면, 당신은 파란 값을 가져옵니다. 그래서 기본적으로 주어진 픽셀의 RGB 값이 (255, 255, 0)으로 "근접"된 다음 전체 픽셀 값을 누적하는 방법을 찾아야합니다. 두 번째 이미지에 대해서도 동일한 작업을 수행 한 다음 두 결과를 비교합니다.
두 번째 생각에서 Jason의 방법은 구현하기가 훨씬 쉽습니다. 'getPixel'을 사용하여'Color' 객체를 얻은 다음'Color.colorToHSV'를 사용하여 HSV로 변환하고 H (색조)를 노란색의 유효한 범위로 간주되는 범위와 비교하십시오. – mtrewartha