aidiary
4/9/2017 - 1:48 AM

HSVへの変換と青色の検出

HSVへの変換と青色の検出

import cv2
import numpy as np

cap = cv2.VideoCapture(0)

cap.set(cv2.CAP_PROP_FRAME_WIDTH, 320)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 240)

while True:
    _, frame = cap.read()

    cv2.imshow('frame', frame)

    # BGR -> HSVへ変換
    # HSVのほうが色を指定しやすい?
    hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)

    # 検出したい青色の範囲をHSVで指定
    lower_blue = np.array([110, 50, 50])
    upper_blue = np.array([130, 255, 255])

    # 青色のみ検出するマスク
    # 青色のところのみ白色(1)になる
    mask = cv2.inRange(hsv, lower_blue, upper_blue)

    # オリジナル画像にマスクをかける
    # 青色のところのみ通過してほかは真っ黒
    res = cv2.bitwise_and(frame, frame, mask=mask)

    cv2.imshow('frame', frame)
    cv2.imshow('mask', mask)
    cv2.imshow('res', res)

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

cv2.destroyAllWindows()