RGB 색 공간에서 특정색을 추출할 때는 영상의 밝기에 따라 오차가 발생하는 것을 눈으로 확인할 수 있다.
V 의 값에 대해서 Don't Care를 하여서 순수한 색상에서만 찾도록 했을 때 HSV 공간에서 특정색을 찾는 것이 RGB 색 공간보다 오차율이 적은 것을 알 수 있다.
#OpenCV 특정 범위 안에 있는 행렬 원소 검출
/*
src : 입력 행렬
lowerb : 하한 값 행렬 또는 스칼라
upperb : 상한 값 행렬 또는 스칼라
dst : 입력 영상과 같은 크기의 마스크 영상. (numpy.uint8)
범위 안에 들어가는 픽셀은 255, 나머지는 0으로 설정
*/
cv2.inRange(src, lowerb, upperb, dst=None) -> dst
inrange2.py
import sys
import numpy as np
import cv2
src = cv2.imread('candies.png')
if src is None:
print('Image load failed!')
sys.exit()
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()
cv2.destroyAllWindows()
영상의 필터링 (0) | 2021.05.25 |
---|---|
히스토그램 역투영(Histogram backprojection) (0) | 2021.05.25 |
히스토그램 평활화(Histogram equalization) (0) | 2021.05.25 |
히스토그램 스트레칭(Histogram stretching) (0) | 2021.05.25 |
영상의 명암비(Contrast) 조절 (0) | 2021.05.25 |
댓글 영역