2013-09-08 4 views
0

Java에서 픽셀의 색상 이름을 어떻게 찾을 수 있습니까? 픽셀의 RGB 값을 찾았지만 픽셀에서 "노란색"이라는 이름을 얻는 방법을 모릅니다.RGB 색상의 이름을 얻는 방법은 무엇입니까?

+0

rgb 값 설정에서 색상의 특정 이름이 항상있는 것은 아닙니다. 때로는 이름으로 빨간색, 파란색 및 녹색 픽셀 컬렉션에 불과합니다. – user2277872

+0

16,777,216 (1) 개의 다른 색상 이름이 필요합니까? 1) R, G & B의 256 가지 값을 사용하여 표현할 수있는 색상의 수 –

+0

[자바에서 색상 선택기를 사용하여 색상의 이름을 얻는 방법] (http://stackoverflow.com/questions/1654582/) 색상을 사용하는 색상 이름 선택 방법) 또는 [이 질문] (http://stackoverflow.com/q/8952975/418556) 또는 [이 질문] (http : //www.stackoverflow.com/q/15246526/418556) –

답변

2

난 당신이 그렇게 할 수있는 자바 API의 일부가 건너하지 않았습니다. 이 기능은 사용자가 직접 구현해야하는 기능입니다. 특히 모든 RGB 조합의 이름이 다를 수 있습니다. 당신이 시작할 수

한 장소는 RGB 색상 값과 같은 Wikipedia list of colors page 같은 사이트에 주어진 이름을 사용하여 조회 테이블을 만드는 것입니다. 그러나

, RGB 값이 아닌 모든 조합이 정의 된 색상에 매핑하기 때문에, 당신은 가장 가까운 색상 값의 집합을지도하는 알고리즘을 마련 할 필요가있다. 이것은 픽셀에 대한 rgb 값과 각 색상 이름에 대한 rgb 값 사이의 평균 제곱 오류를 계산하는 선상에있을 수 있습니다. 그런 다음 가장 낮은 점수의 색상 이름을 선택할 수 있습니다. https://gist.github.com/nightlark/6482130

+0

방금 ​​방정식과 색상 목록을 사용할 수 있을까요? { robot = new Robot(); 컬러 color = robot.getPixelColor (x, y); System.out.println ("화면상의 지점으로 이동하여 상자에 가져 오기 (RBG 제공)"); System.out.println ("Red ="+ color.getRed()); System.out.println ("Green ="+ color.getGreen()); System.out.println ("Blue ="+ color.getBlue()); – user2758220

+0

귀하의 질문을 이해하고 있다면 그렇습니다.색상의 이름에 대한 색상의 가장 정확한 매핑이 보장되지 않습니다. 빨간색에 비해 상대적으로 낮은 값을 갖는 붉은 색을 가질 수 있기 때문에 아마 특정 색을 잘 처리하지 못할 것입니다. 색상 이름을 반환하는 버전은 색상의 HSV (색조, 채도, 값) 표현을 취한 다음 색상에 가장 가까운 색상을 찾습니다. 가장 합리적인 결과를 얻는 방법을 알아 보려면 여러 가지를 가지고 놀아야합니다. – Ryan

2

가 일부를 다음과 같습니다

은 가장 가까운 일치하는 색 이름을 찾기 위해 평균 제곱 오차를 계산하는 ColorNameLookup 클래스는 일할 수있는 방법을 보여줍니다 (그러나주의가 컴파일되지 않을 수 있음) 일부 코드 요지이다 Java 및 기타 표준 색상은 RGB 또는 HSB 생성자를 사용하여 생성 할 수 있습니다. RGB 값 (256 x 256 x 256)의 조합이 많기 때문에 색상 이름을 가져올 방법이 없습니다. 단지 몇 가지 조합이

+0

나는 마우스를 움직이면 색상 이름이 나타납니다. 내 RGB가 창에 표시되지만 색상의 이름은 표시되지 않습니다. 그게 더 도움이된다면 – user2758220

+0

* "그게 더 도움이된다면"* 아니, 실제로, 당신이이 대답을 알지 못했던 것 같으면 (기본적으로) '불가능합니다'.. –

1

나는 확신합니다, 당신은 귀하의 질문에 기본적인 문제를 가지고 이름 (검은 색, 노란색, 흰색, 빨간색 등 같은 표준 색)이있다.

당신이 RGB 값의 모든 가능한 조합의 색 이름을 찾기 위해 노력하는 경우이 이미 고유 한 색 이름으로 모든 가능한 RGB 값을 매핑 가지고 철저한 스토리지를 필요로 할 것이다. 이지도는 당신과 함께 때까지

이 의미

은 귀하의 질문은, 100 개 %의 정확성으로 대답 할 수 없습니다. 하지만 네, java.awt.Color 클래스에 정의 된 색상의 색상 이름을 찾을 수 있습니다.

그래서, 당신은 또한 java.awt.Color과 당신이 가진 RGB의 각 값에 대해 정의 된 공공 정적 최종 색상 속성의 목록을 찾을 자바 반사를 사용할 수 있습니다, 당신은 자바에서 선언 된 모든 Color를 통해 비교할 수 있습니다.

+0

그래서 나는 목록을 만들 필요가 있습니다. 그것을 색상 이름과 비교하는 것. 색상의 실제 이름에 어떻게 가까이 가나 요? 방정식은 어떻게 생겼습니까? – user2758220

+0

* "그렇지만 java.awt.Color 클래스에 정의 된 색상의 색상 이름을 찾을 수 있습니다."* 모두 14 개입니다. 가능한 16.7+ 백만에서 나쁘지 않은데. –

관련 문제