이미지의 각 픽셀이 두 색상 사이의 범위에 있는지 감지하고 싶습니다. getImageData으로 픽셀 색상을 얻을 수 있지만 지금 범위 내에 있는지 어떻게 알 수 없습니다. 아이디어가 있으십니까? 감사합니다.자바에서 두 색상 사이에 색상이 있는지 감지합니다.
0
A
답변
1
HSL 색상에서 H는 색조 (일반적으로 색상으로 생각하는 것)를 의미합니다. HSL 색상을 사용하는 경우 Stano가 제안하고 픽셀 색조와 지정된 색조 사이의 선형 거리를 계산할 수 있습니다.
HueDesired – HuePixel
그러나 컴퓨터 이미지는 일반적으로 RGB 색상 모델에서 정의됩니다. RGB는 원하는 색상을 만들기 위해 색상의 블렌드를 사용합니다. RGB를 사용하면 컬러 휠에서 서로의 유클리드 거리를 계산하여 두 가지 색상이 "가까운 색"인지 확인할 수 있습니다.
여기에 지정된 색상과 픽셀의 색상 사이의 유클리드 거리를 계산하는 함수입니다 :
// find Euclidian distance from the pixel color to the specified color
//
function colorDistance(colorRed,colorGreen,colorBlue,pixelRed,pixelGreen,pixelBlue){
var diffR,diffG,diffB;
// distance to color
diffR=(colorRed - pixelRed);
diffG=(colorGreen - pixelGreen);
diffB=(colorBlue - pixelBlue);
return(Math.sqrt(diffR*diffR + diffG*diffG + diffB*diffB));
}
당신이, 2 색으로 픽셀을 비교 당신의 2 색의 모두이 기능을 실행하려는 때문에
.두 색과 픽셀 색 사이의 "허용 가능한"거리는 무엇인지 결정하는 것은 사용자의 책임입니다. 그러나이 기능을 사용하면 작업 할 측정 도구가 제공됩니다.
+0
thaks, 당신은 보스입니다! 이것이 내가 필요한 것입니다. – PaRoJa
두 색상 사이의 "범위 안에"있는 색상의 정의는 무엇입니까? – Philipp
네,하지만 블루 톤과 어떻게 똑같은지 모르겠습니다. var cmin = {r : 0, g : 0, b : 255}; var cmax = {r : 0, g : 0, b : 50}; don't work – PaRoJa