반응형

 

아래 코드는 반드시 카메라가 있어야 하며, 카메라에 접근할 수 있는 드라이버가 설치되어야 한다.

노트북의 경우 카메라가 달려있기 때문에 바로 사용가능하다.

사용을 위해서는 라이브러리 opencv와 numpy가 있어야 한다.

 

# 라이브러리 다운로드
# pip install opencv-python
# pip install numpy


import cv2
import numpy as np

cap = cv2.VideoCapture(0)       # 카메라 모듈 사용.

while(1):
    ret, frame = cap.read()     #   카메라 모듈 연속프레임 읽기

    hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)    # BGR을 HSV로 변환해줌

    # define range of blue color in HSV
    lower_blue = np.array([100,100,120])          # 파랑색 범위
    upper_blue = np.array([150,255,255])

    lower_green = np.array([50, 150, 50])        # 초록색 범위
    upper_green = np.array([80, 255, 255])

    lower_red = np.array([150, 50, 50])        # 빨강색 범위
    upper_red = np.array([180, 255, 255])

    # Threshold the HSV image to get only blue colors
    mask = cv2.inRange(hsv, lower_blue, upper_blue)     # 110<->150 Hue(색상) 영역을 지정.
    mask1 = cv2.inRange(hsv, lower_green, upper_green)  # 영역 이하는 모두 날림 검정. 그 이상은 모두 흰색 두개로 Mask를 씌움.
    mask2 = cv2.inRange(hsv, lower_red, upper_red)

    # Bitwise-AND mask and original image
    res = cv2.bitwise_and(frame, frame, mask=mask)      # 흰색 영역에 파랑색 마스크를 씌워줌.
    res1 = cv2.bitwise_and(frame, frame, mask=mask1)    # 흰색 영역에 초록색 마스크를 씌워줌.
    res2 = cv2.bitwise_and(frame, frame, mask=mask2)    # 흰색 영역에 빨강색 마스크를 씌워줌.

    cv2.imshow('frame',frame)       # 원본 영상을 보여줌
    cv2.imshow('Blue', res)           # 마스크 위에 파랑색을 씌운 것을 보여줌.
    cv2.imshow('Green', res1)          # 마스크 위에 초록색을 씌운 것을 보여줌.
    cv2.imshow('red', res2)          # 마스크 위에 빨강색을 씌운 것을 보여줌.

    k = cv2.waitKey(5) & 0xFF
    if k == 27:
        break

cv2.destroyAllWindows()
반응형

(파이썬 실행 결과)

red파라미터값이 주변 조명에 의해 잘 추출되지 않았다. 값을 수정하면 된다.

주변 빛의 밝기에 따라 추출값이 달라질 수 있다.

범위 값 파라미터를 적절히 변경하여 사용하면 된다.

 

 

<영상을 그레이로 변경하기>

https://ansan-survivor.tistory.com/639

 

[Python OpenCV] 파이썬 영상 추출하기, 회색(gray)으로 배경 변경하기

아래 코드는 기본적으로 파이썬을 이용해서 영상을 추출할 수 있는 코드이다. 또한 cv2.cvtColor함수를 이용해 원본 영상을 gray로 변경해서 추출했다. 기본적으로 카메라가 있어야 하며 (노트북 가

ansan-survivor.tistory.com

 

<RGB색상 합성하기>

https://ansan-survivor.tistory.com/640

 

[Python OpenCV] 파이썬 두 이미지 합치기, 두 이미지 합성 시키기 (RGB값 더하기)

Mask를 이용하여 두 이미지를 합성하는 예제 코드이다. 단, 두 이미지의 크기가 같아야 작동한다. 만약 이미지 크기가 조금이라도 다르다면 오류를 일으킨다. 여기서는 flippy.jpg 라는 이미지와 'log

ansan-survivor.tistory.com

 

 

 

반응형

+ Recent posts