▶ 트랙바를 이용한 특정 색상 영역 추출
HSV 색 공간의 H의 범위를 트랙바로 조정하여 원하는 색 검출을 용이하게 할 수 있습니다.
트랙바 만드는 법과 트랙바 생성 함수는 여기에서 확인할 수 있습니다.
색상 영역 검출 하는 방법은 여기에서 확인할 수 있습니다.
[예제 코드]
src = cv2.imread('candies.png')
if src is None:
print('Image load failed!')
sys.exit()
# BGR -> HSV 로 변경 (정확성, 효율성면에서 BGR 방식보단 HSV가 효과적임)
src_hsv = cv2.cvtColor(src, cv2.COLOR_BGR2HSV)
# 트랙바 콜백 함수 생성
def on_trackbar(pos):
hmin = cv2.getTrackbarPos('H_min', 'dst') # 트랙바의 위치를 받아옴 (h_min 값)
hmax = cv2.getTrackbarPos('H_max', 'dst')
# inrange(image, low, upper)
dst = cv2.inRange(src_hsv, (hmin, 150, 0), (hmax, 255, 255))
cv2.imshow('dst', dst)
cv2.imshow('src', src)
cv2.namedWindow('dst')
# 트랙바 콜백 함수 등록
cv2.createTrackbar('H_min', 'dst', 50, 179, on_trackbar)
cv2.createTrackbar('H_max', 'dst', 80, 179, on_trackbar)
on_trackbar(0)
cv2.waitKey()
cv2.destroyAllWindows()
[결과]
-. User가 tackbar 조정하여 찾고자 하는 H 범위를 찾을 수 있다.
-. H.S.V에 대한 설명
https://ko.wikipedia.org/wiki/HSV_%EC%83%89_%EA%B3%B5%EA%B0%84
HSV 색 공간 - 위키백과, 우리 모두의 백과사전
HSV 색 공간 또는 HSV 모델은 색을 표현하는 하나의 방법이자, 그 방법에 따라 색을 배치하는 방식이다. 색상(Hue), 채도(Saturation), 명도(Value)의 좌표를 써서 특정한 색을 지정한다. 비슷한 것으로 HSL
ko.wikipedia.org
'Language - Python(Opencv)' 카테고리의 다른 글
Python Opencv - #17, 영상 필터링(GaussianBlur 필터) (0) | 2021.11.23 |
---|---|
Python Opencv - #16, 영상 필터링 작업 (0) | 2021.11.23 |
Python Opencv - #14, histogram 기본 (0) | 2021.11.22 |
Python Opencv - #13, 영상 색상 처리 (0) | 2021.11.22 |
Python Opencv - #12, 영상 산술 연산 (0) | 2021.11.22 |