문제

NXT Brick 용 NetLogo에 확장을 쓸려고합니다.벽돌을 연결하려면 Lejos를 사용하고 있습니다.나는 컬러 센서에 문제가있다.나는 노란색 : 1, 빨간색 : 2 등과 같은 숫자로 센서 색을 반환하는 간단한 방법을 작성하고 싶지만 센서 모터는 항상 같은 표면에 다른 RGB 색상을 반환합니다.예를 들어, 노란색 종이 위에 올려 놓고 RGB 색상은 다음과 같습니다. [236 189 104], [247 202 108]. 동일한 표면 색상을위한 고유 한 RGB 번호를 반환하면 RGB 색상 범위에 따라 분류하고각 색상의 고유 한 번호입니다.내가 어떻게 할 수 있는지 알고 있니?또한 다른 표면에서 실행되지 않습니다.내 종이 색상 (노란색, 파란색, 녹색)을 위해이 작업을 수행 할 수 있습니다.고마워.

도움이 되었습니까?

해결책

내가 의미하는 바를 올바르게 이해하면 java.awt.color.rgbtohsb 가 도움이 될 수 있습니다.이와 같은 자바 코드 :

float[] hsb = Color.RGBtoHSB(red, green, blue, null);  
float hue = hsb[0];
.

(여기서 red, greenblue가 센서 결과가있는 변수)

... 당신이 0과 1 사이의 float로 색깔의 "색조"를 줄 수 있으며, 적절한 범위를 정의하는 경우 노란색, 파란색, 녹색 또는 다른 것의 그늘이면 알아야 할 충분해야합니다....에그것은 매우 과 같은 과 같은 것과 같아야합니다.

Yellow: 0.1  < hue < 0.2
Blue:   0.5  < hue < 0.7
Green:  0.25 < hue < 0.45
.

... 그러나 그것에 대해 내 말을 듣지 마십시오!센서가 노란색 종이 위에있을 때 어떤 범위를 유지하는지 실험해야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top