python についての質問
python のプログラムについて質問です
python のopencvを利用してwebカメラから赤色と緑色の検出はできたのですが、
マスク画像中に検出した赤色と緑色の両方の物体に緑色の重心をつけ,追従させたいのですが上手くできません。どのようなプログラムを書けばよいでしょうか?
ご教授お願いいたします。
python のバージョンは3.7です
下記のプログラムは緑色と赤色を検出するプログラムです。
-- coding: utf-8 --
import cv2
import numpy as np
def red_detect(img):
# HSV色空間に変換
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
# 赤色のHSVの値域1
hsv_min = np.array([0,127,0])
hsv_max = np.array([30,255,255])
mask1 = cv2.inRange(hsv, hsv_min, hsv_max)
# 赤色のHSVの値域2
hsv_min = np.array([150,127,0])
hsv_max = np.array([179,255,255])
mask2 = cv2.inRange(hsv, hsv_min, hsv_max)
# 緑色のHSVの値域
hsv_min = np.array([34,60,0])
hsv_max = np.array([90,255,255])
mask3 = cv2.inRange(hsv, hsv_min, hsv_max)
return mask1 + mask2 + mask3
def main():
# カメラのキャプチャ
cap = cv2.VideoCapture(0)
while(cap.isOpened()):
# フレームを取得
ret, frame = cap.read()
# 赤色検出
mask = red_detect(frame)
# 結果表示
cv2.imshow("Frame", frame)
cv2.imshow("Mask", mask)
# qキーが押されたら途中終了
if cv2.waitKey(25) & 0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
if name == 'main':
main()