2014-02-23 58 views
-3
import cv2 
import numpy as np 

cap = cv2.VideoCapture(0) 

while(1): 

    # Take each frame 
    _, frame = cap.read() 

    # Convert BGR to HSV 
    hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV) 

    # define range of blue color in HSV 
    lower_blue = np.array([110,50,50]) 
    upper_blue = np.array([130,255,255]) 

    # Threshold the HSV image to get only blue colors 
    mask = cv2.inRange(hsv, lower_green, upper_green) 

    # Bitwise-AND mask and original image 
    res = cv2.bitwise_and(frame,frame, mask= mask) 

    cv2.imshow('frame',frame) 
    cv2.imshow('mask',mask) 
    cv2.imshow('res',res) 
    k = cv2.waitKey(5) & 0xFF 
    if k == 27: 
     break 

cv2.destroyAllWindows() 

請注意:我是新來打開簡歷,所以請幫助傢伙!請爲我解釋這個opencv程序

在這個程序

1),而讀一幀,爲什麼會出現符號「_」,幀之前

是它語法??

2)指定藍色的下限和上限。 是RGB值還是BGR值或HSV值?

我怎樣才能找到像紅,綠等其他顏色的下界和上界?

請解釋查找其他顏色的值的過程,我試過其他顏色,但它給了我黑屏輸出hsv和res!

3)CAn有人更改此程序檢測紅色或其他顏色,所以我可以知道區別?

+1

廣告1:'_'是一個像其他任何變量。你也可以將它命名爲「草莓」或「阿洛哈」。如果您對其內容不感興趣,通常會調用變量'_'。 – Hyperboreus

+0

我想補充一點,首先出現'_'的原因是cap.read()返回2個值,所以我們只把第一個值放到'_'中,因爲我們不想要使用它(它有點奇怪,因爲根據[doc](http://docs.opencv.org/modules/highgui/doc/reading_and_writing_images_and_video.html#videocapture-read)它只能在Python版本的API中返回,並在我的經驗中,它完全無用......) – mirosval

回答

1
  1. 這是元組拆包; cap.read()返回兩個值,我們將第一個分配給_(約定爲「我們不會使用此」),第二個分配給frame
  2. 評論字面意思是「in hsv」。
  3. 你只需要指定你自己的界限,或者改變已經存在的界限,並親自看到差異。使用HSV converter來查看您正在使用的顏色。如果範圍內的顏色不在您處理的圖像中,則顏色會變黑。