반응형
황선규 박사님의 OpenCV 강의를 공부하면서 정리하였습니다.
황선규 박사님의 'OpenCV 4로 배우는 컴퓨터 비전과 머신 러닝'를 바탕으로 제작하였습니다.
트랙바를 이용한 특정 색상 영역 추출
HSV 색 공간의 H의 범위를 트랙바로 조정하여 원하는 색 검출을 용이하게 할 수 있습니다.
트랙바 만드는 법과 트랙바 생성 함수는 여기에서 확인할 수 있습니다.
색상 영역 검출 하는 방법은 여기에서 확인할 수 있습니다.
[예제 코드]
src = cv2.imread('candies.png')
if src is None:
print('Image load failed!')
sys.exit()
src_hsv = cv2.cvtColor(src, cv2.COLOR_BGR2HSV) # BGR -> HSV 로 변경(색상 검출에 효율적)
# 트랙바 콜백 함수 생성
def on_trackbar(pos):
hmin = cv2.getTrackbarPos('H_min', 'dst') # 트랙바의 위치를 받아옴 (h_min 값)
hmax = cv2.getTrackbarPos('H_max', 'dst')
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()
[결과]
트랙바를 조정해서 원하는 H 범위를 설정할 수 있습니다.
반응형
'Python > 파이썬 OpenCV 공부' 카테고리의 다른 글
[파이썬 OpenCV] 히스토그램 역투영을 이용한 살색 영역 검출하기 - cv2.calcBackProject, cv2.calcHist (0) | 2020.09.29 |
---|---|
[파이썬 OpenCV] 히스토그램 역투영 - cv2.calcBackProject, cv2.selectROI (0) | 2020.09.29 |
[파이썬 OpenCV] 특정 색상 영역 추출 - cv2.inRange (3) | 2020.09.28 |
[파이썬 OpenCV] 히스토그램 평활화 - cv2.equlizeHist (0) | 2020.09.28 |
[파이썬 OpenCV] 영상의 명암비 조절 - 히스토그램 스트레칭, 정규화(cv2.normalize) (1) | 2020.09.28 |