2014-02-23 4 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() 

Примечание: я новичок, чтобы открыть cv, поэтому, пожалуйста, помогите ребятам !!!Пожалуйста, объясните эту программу opencv для меня

В этой программе

1) во время чтения кадра, почему есть символ «_» перед рамой

это синтаксис ??

2) Указана нижняя и верхняя граница синего цвета. - это значения RGB или значения BGR или значения HSV?

Как я могу найти нижнюю границу и верхнюю часть других цветов, таких как красный, зеленый?

Пожалуйста, объясните процесс поиска значений другого цвета, я попробовал другие цвета, но он дал мне черный экран для hsv и res !!!

3) Возможно, кто-то изменил эту программу, чтобы обнаружить красный цвет или другой цвет, чтобы я мог знать разницу?

+1

ad 1: '_' - переменная, как и любая другая. Вы также можете назвать его «клубника» или «алоха». Обычно вы вызываете переменную '_', если вас не интересует ее содержимое. – Hyperboreus

+0

Я хочу добавить, что причина, по которой '_' там в первую очередь, заключается в том, что' cap.read() 'возвращает 2 значения, поэтому мы просто помещаем первый в' _', потому что мы не хотим использовать его (его несколько странно, потому что согласно [doc] (http://docs.opencv.org/modules/highgui/doc/reading_and_writing_images_and_video.html#videocapture-read) он возвращается только в версии API-интерфейса Python , и по моему опыту это совершенно бесполезно ...) – mirosval

ответ

1
  1. Это распаковка кортежа; cap.read() возвращает два значения, мы назначаем первое значение _ (условное обозначение «мы не будем использовать это»), а второе - frame.
  2. Комментарий буквально говорит «в hsv».
  3. Вам просто нужно указать свои собственные границы или изменить те, которые уже есть, и сами увидеть разницу. Используйте HSV converter, чтобы узнать, какие цвета вы используете. Если цвета внутри вашего диапазона не находятся в изображении, который вы обрабатываете, он будет черным.
Смежные вопросы