我是用Python中的OpenCV制作这个蓝色滤镜的,它可以工作,但视频输出滞后.

import numpy as np
import cv2

cap = cv2.VideoCapture(0)  

while True:
    ret, frame = cap.read()  
    for i in range(frame.shape[0]):
        for j in range(frame.shape[1]):
            frame[i][j] = [255,frame[i][j][1],frame[i][j][2]]

    cv2.imshow('frame',frame)

    if cv2.waitKey(1) == ord('q'):
        break

cap.release()  
cv2.destroyAllWindows()    

推荐答案

您可以利用NumPy中的矢量化操作来避免显式循环:

import numpy as np
import cv2

cap = cv2.VideoCapture(0)

while True:
    ret, frame = cap.read()
    
    frame[:, :, 0] = 255  # Set blue channel to 255 (full blue)
    
    cv2.imshow('frame', frame)

    if cv2.waitKey(1) == ord('q'):
        break

cap.release()
cv2.destroyAllWindows()

Python相关问答推荐

在编写要Excel的数据透视框架时修复标题行

如何使用矩阵在sklearn中同时对每个列执行matthews_corrcoef?

计算所有前面行(当前行)中列的值

三个给定的坐标可以是矩形的点吗

使用SciPy进行曲线匹配未能给出正确的匹配

对整个 pyramid 进行分组与对 pyramid 列子集进行分组

将两只Pandas rame乘以指数

更改键盘按钮进入'

Python键入协议默认值

对所有子图应用相同的轴格式

我对我应该做什么以及我如何做感到困惑'

从Windows Python脚本在WSL上运行Linux应用程序

判断solve_ivp中的事件

如何在达到end_time时自动将状态字段从1更改为0

pandas:对多级列框架的列进行排序/重新排序

python中csv. Dictreader. fieldname的类型是什么?'

Python—转换日期:价目表到新行

在代码执行后关闭ChromeDriver窗口

如何按row_id/row_number过滤数据帧

应用指定的规则构建数组