Как получать среднее двух кадров с камеры OpenCV Python?
При получении изображения с камеры нам каждый раз отображается новый frame. Но, как каждый раз получать среднее изображение нового фрейма и предыдущего? Вариант с методом mean в numpy годится, но проблема в том, что я не могу все это запустить в бесконечном цикле. Прошу знающих внести дополнения в коде, чтобы выводились наложенные друг на друга 2 изображения в бесконечном цикле.
Учитывая комментарии людей, попробую объяснить более подробно. На первой итерации цикла while мы получаем frame1 и выводим его на экран. На второй итерации камера порождает нам frame2. Так вот на второй итерации нужно подвести frame1 для того, чтобы объединившись с frame2 прородился результат этой операции frame3, который уже выведется на экран. (Т.е. На первой итерации выводится на экран frame1, а на второй уже frame3) Зачем это нужно? Конечно, для обычной вэбки это совершенно ни к чему. Но для научного оборудования такое полезно.
main.py
import cv2
import numpy as np
class Camera1():
def __init__(self):
super(Camera1, self).__init__()
self.cap = cv2.VideoCapture(0)
self.previousFrame = None
def run(self):
while(True):
ret, frame = self.cap.read()
if self.previousFrame is not None:
meanFrame = [frame, self.previousFrame]
else:
self.previousFrame = frame
meanFrame = [frame, self.previousFrame]
composicion = np.mean(meanFrame, 0)
cv2.imshow('Video', composicion)
self.previousFrame = composicion
if cv2.waitKey(1) & 0xFF == ord('q'):
break
self.cap.release()
cv2.destroyAllWindows()
if __name__ == '__main__':
c = Camera1()
c.run()