728x90
반응형
RGB 색 공간에서 녹색 영역 추출하기

HSV 색 공간에서 녹색 영역 추출하기

밝기가 어두운 영상에서의 특정 영역 추출
RGB 색 공간에서 녹색 영역 추출하기

* RGB 색 공간에서 특정 영역을 추출 하는 경우 밝기에 영향을 받음
HSV 색 공간에서 녹색 영역 추출하기

* HSV 색 공간에서는 밝기에 비교적 영향을 받지 않는다.
특정 범위 안에 있는 행렬 원소 검출
cv2.inRange(src, lowerb, upperb, dst=None) -> dst
- src : 입력 행렬
- lowerb : 하한 값 행렬 또는 스칼라
- upperb : 상한 값 행렬 또는 스칼라
- dst : 입력 영상과 같은 크기의 마스크 영상. (numpy.uint8) 범위 안에 들어가는 픽셀은 255, 나머지는 0으로 설정.
src = cv2.imread('candies.png')
src_hsv = cv2.cvtColor(src, cv2.COLOR_BGR2HSV)
dst1 = cv2.inRange(src, (0, 128, 0), (100, 255, 100))
dst2 = cv2.inRange(src_hsv, (50, 150, 0), (80, 255, 255))
cv2.imshow('src', src)
cv2.imshow('dst1', dst1)
cv2.imshow('dst2', dst2)
cv2.waitKey()
cv2.destroyAllWindows()
- 실행결과:



트랙바를 이용한 특정 색상 영역 추출
특정 색상 영역 추출
src = cv2.imread('candies.png')
src_hsv = cv2.cvtColor(src, cv2.COLOR_BGR2HSV)
def on_trackbar(pos):
hmin = cv2.getTrackbarPos('H_min', 'dst')
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()
- ex) 녹색 영역 추출

728x90
반응형
'OpenCV' 카테고리의 다른 글
| OpenCV 영상처리 - 히스토그램 평활화(cv2.equalizeHist) (0) | 2024.03.18 |
|---|---|
| OpenCV 영상처리 - 명암비 조절, cv2.normalize (0) | 2024.03.18 |
| OpenCV 영상처리 - 히스토그램 분석(cv2.calcHist) (0) | 2024.03.18 |
| OpenCV 영상처리 - 컬러 영상과 색 공간 (0) | 2024.03.18 |
| OpenCV 영상처리 - 산술 및 논리 연산 (0) | 2024.03.18 |