4

私はこの質問を見ていました:

opencvを使用して青色のオブジェクトを検出する方法

しかし、試行錯誤の末、青い物体を検出する方法がまだわかりません。

これが私のコードです:

import cv2
import numpy as np

cam=cv2.VideoCapture(0)
n=0

while True:
    print n
    returnVal,frame=cam.read()

    img=cv2.GaussianBlur(frame, (5,5), 0)
    img=cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)

    blue_lower=np.array([150,150,0],np.uint8)
    blue_upper=np.array([180,255,255],np.uint8)
    blue=cv2.inRange(img,blue_lower,blue_upper)

    cv2.imshow('img',blue)

    n=n+1
    key = cv2.waitKey(10) % 0x100
    if key == 27: break #ESC 

次の行を設定することで、赤いオブジェクトを検出できます。

red_lower=np.array([0,150,0],np.uint8)
red_upper=np.array([10,255,255],np.uint8)

最初のコードを使用してウェブカメラの前に青い紙を置くと、黒く表示されます。

誰かが青色のRGBをHSVに変換するのを手伝ってくれませんか?

よろしくお願いします。

4

3 に答える 3

7

青は、360 度のうち約 240 度の色相でHSVで表されます。OpenCV-HSV の色相範囲は 0 ~ 180 で、値を 8 ビットで格納します。したがって、青は OpenCV-HSV では H around の値として表され240 / 2 = 120ます。

青を正しく検出するには、次の値を選択できます。

blue_lower=np.array([100,150,0],np.uint8)
blue_upper=np.array([140,255,255],np.uint8)
于 2013-07-26T10:35:50.633 に答える
2

カラーモデルは次の行で設定されます。

   img=cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)

OpenCV がデフォルトで使用するデフォルトの青、緑、赤ではなく、色相、彩度、および値を使用する。カラーモデルがどのように機能するかについては、こちらを参照してください。

于 2013-07-26T10:42:13.280 に答える