2017-02-09 1 views
0

OpenCV와 Python을 사용하여 이미지의 타겟 패턴을 찾을 수있는 소프트웨어를 개발하고 있습니다. 저는 현재 원하는 타겟을 찾는 중입니다.이 중 일부는 타겟의 색상을 분리하기 위해 HSV thresholding 작업을 실행하고 있습니다. HSV의 임계 코드는 다음과 같습니다성공하면 OpenCV의 HSV 임계 값은 어떻게 되나요?

out = cv2.cvtColor(input, cv2.COLOR_RGB2HSV) 
return cv2.inRange(out, (hue[0], sat[0], val[0]), (hue[1], sat[1], val[1])) 

hue[], sat[]val[]이 코드에 정의되고 실험적으로 내가 찾고있어 HSV 범위의 값을 검사가 포함 된 배열. 이 메서드를 실행 한 후 출력을 인쇄하기 위해 print 문을 추가했습니다.

[[0 0 0 ..., 0 0 0] 
[0 0 0 ..., 0 0 0] 
[0 0 0 ..., 0 0 0]] 

내가 다른 색상을 많이 포함 풍선의 다른 주식 이미지를 사용했는데,이 같은 일을 반환 : 내 카메라 프레임에이 방법을 실행하면,이 반환합니다. 올바르게 작동하는 경우 HSV 메소드가 반환해야하는 문서를 찾기가 어려워서 이것을 디버깅하는 방법을 정확히 알지 못합니다.

사람들이 제대로 작동하고 있거나 예제가 있다면 어떤 유형의 출력을보아야합니까?

+0

cv2.inRange() 픽셀의 배열이 아닌 단일 값 바이너리 이미지를 반환

여기 창에 이미지를 인쇄하고 작업하는지 확인하는 방법은 다음과 같습니다. 따라서 모든 0은 임계 값 이후의 이미지에서 검은 픽셀에 해당합니다. imshow를 사용하여 이미지를보십시오. 또한 "올바르게 작동하는"것을 어떻게 정의 할 것입니까? –

+0

참고로 [OpenCV color conversion metrics] (http://docs.opencv.org/2.4/modules/imgproc/doc/miscellaneous_transformations.html#cvtcolor)를 반드시 확인하십시오. 수동으로 thresholding 할 때 매우 중요합니다! –

+0

hue, sat 및 val에 대해 out.dtype, lower 및 upper limits를 제공하십시오. –

답변

0

저는 이것을 풀었습니다. 비슷한 질문이 있고 나중에 검색 할 경우에 대비해 여기에 넣고 싶습니다.

IP 카메라, GRIP 디스플레이 창 및 OpenCV 이미지의 웹 뷰어가 모두 약간 다르기 때문에 이미지를 창에 인쇄하면 크게 도움이되었습니다. 따라서 GRIP에서 얻은 임계 값은 작동하지 않았습니다 전혀, 그리고 오직 검은 이미지를 반환했습니다.

cv2.imshow('image', img) #img is your image, 'image' is the name of the window you'll create 
cv2.waitKey(0) #handles GUI elements, and causes the window to close when you press any key 
cv2.destroyAllWindows() 
관련 문제