Как читать пиксели из определенного видеокадра - PullRequest
0 голосов
/ 24 апреля 2019

Я пытаюсь изменить пиксель в определенном видеокадре, используя OpenCV в Python.Мой текущий код:

import cv2
cap = cv2.VideoCapture("plane.avi")
cap.set(1, 2) #2- the second frame of my video
res, frame = cap.read()
cv2.imshow("video", frame)
while True:
    ch = 0xFF & cv2.waitKey(1)
    if ch == 27:
        break

Я получил нужный кадр, но я не знаю, как получить и изменить его пиксели.Пожалуйста, предложите метод.

1 Ответ

0 голосов
/ 24 апреля 2019

По вашему вопросу вы пытаетесь прочитать второй кадр, используя cv2.seek (). Значения пикселей сохраняются в переменном кадре. Чтобы изменить его, вы можете получить доступ к значениям отдельных пикселей.

Пример:

cap.set(1, 2)
res, frame = cap.read() #frame has your pixel values

#Get frame height and width to access pixels
height, width, channels = frame.shape

#Accessing BGR pixel values    
for x in range(0, width) :
     for y in range(0, height) :
          print (frame[x,y,0]) #B Channel Value
          print (frame[x,y,1]) #G Channel Value
          print (frame[x,y,2]) #R Channel Value
...