2012-01-31 3 views
2
cvInRangeS(imgHSV, cvScalar(15, 234, 120), cvScalar(21, 234, 120), imgThreshed); 

cvScalar 함수의 각 매개 변수가 나타내는 것이 무엇인지 궁금합니다. 나는 그것이 HSV 일 것이라고 생각했지만 원하는 색상을 thresholding하는 것 같지 않습니다. 누군가가 매개 변수를 조금 더 명확하게 설명 할 수 있습니까?HSV 색 공간 및 CvInRangeS 함수

http://en.wikipedia.org/wiki/HSL_and_HSV

색이 주로 : 색조, S - - - 채도, V 값

그 각각의 이해를 위해 여기에서 살펴

+0

[이 페이지] (http://tech.groups.yahoo.com/group/OpenCV/message/76742)에는 좋은 설명이있는 것 같습니다. 첫 번째 스칼라가 min hsv 값이고 두 번째 스칼라가 max hsv 값인 것처럼 보입니다. 모든 값이 최소값과 최대 값 사이에 있는지 확인합니다. – user1118321

+0

h, s 및 v가 어떻게 될지 알고 있습니까? 예를 들어, 일반적으로 rgb의 경우 값이 255입니다. HSv의 경우에는 다른 것으로 보입니다. OpenCV가 사용하는 것이 확실하지 않습니다. –

+1

일반적으로 색조는 0에서 360도 범위이지만, 8 비트 내에 맞도록 0에서 255로 표시되는 경우가 있습니다. 채도 및 값은 일반적으로 0에서 100이지만 전체 8 비트 범위를 사용하려면 0에서 255까지 확장 될 수 있습니다. 그래서 내가 말하는 것은 당신이 HSV로 변환하는 데 사용했던 문서를 읽어야한다는 것입니다. – user1118321

답변

10

cvInrangeS 함수는 배열 요소는 두 개의 스칼라 사이가 확인한다.

첫 번째 cvScalar 값은 포괄적 인 하위 경계를 나타냅니다. 두 번째 cvScalar 값은 단독 상위 경계를 나타냅니다.

cvInrangeS는 사용자가 RGB, BGR 또는 HSV 등으로 지정한 값을 신경 쓰지 않습니다. 입력 된 값 (첫 번째 매개 변수) (여기서는 이미지 임)을 통과하고 요소가 있는지 확인합니다 지정된 범위. 그렇다면 선택되고 그렇지 않으면 거부됩니다. 결과를 마지막 매개 변수 인 출력 이미지로 보냅니다.

체크 아웃은 이제 다음은 HSV 이미지를 주면

documentation. 따라서 cvScalar는 추출하려는 범위의 가장 낮은 색과 가장 높은 색을 나타냅니다.

RGB 이미지 인 경우 최소 RGB 색을 지정합니다.

좋은 결과를 제공하므로 HSV를 사용하는 것이 좋습니다. Read here.

그리고 지금 당신이, HSV 값을 RGB로 변환 시도 here

here. (빨간색과 파란색이 교환을 OpenCV에 기억. 그것은 BGR이 아닌 RGB이다)하려는 경우.

+0

죽은 링크를 여기에서 업데이트했습니다. –