Computer Vision/opencv(python)

[18] 7) 특정 색상 영역 추출

jwjwvison 2021. 3. 18. 13:16
  • RGB 색 공간에서 녹색 영역 추출하기

 

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

 

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

import cv2
import sys
import numpy as np

src = cv2.imread('candies2.png')
#src = cv2.imread('candies2.png')

if src is None:
    print('Image load failed!')
    sys.exit()

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))  # 50<=h<=80, 150<=s<=255, 0<=v=<255

cv2.imshow('src',src)
cv2.imshow('dst1',dst1)
cv2.imshow('dst2',dst2)
cv2.waitKey()
cv2.destroyAllWindows()

 

  • 특정 범위 안에 있는 행렬 원소 검출
cv2.inRange(src,lowerb,upperb,dst=None) -> dst

 

 • src 입력 행렬
 • lowerb : 하한 값 행렬 또는 스칼라
 • upperb 상한 값 행렬 또는 스칼라
 • dst : 입력 영상과 같은 크기의 마스크 영상 . (numpy.uint8) 범위 안에 들어가는 픽셀은 255, 나머지는 0 으로 설정

 

  • 트랙바를 이용한 특정 색상 영역 추출
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()

'Computer Vision > opencv(python)' 카테고리의 다른 글

[20] 크로마키 합성  (0) 2021.03.18
[19] 8)히스토그램 역투영  (0) 2021.03.18
[17] 6) 히스토그램 평활화  (0) 2021.03.18
[16] 5) 영상의 명암비 조절  (0) 2021.03.18
[15] 4) 히스토그램 분석  (0) 2021.03.18