用OpenCV实现UVC视频分屏

分屏

  • Opencv
  • UVC
  • 代码
  • 验证
  • 后话

用OpenCV实现UVC摄像头的视频分屏。

Opencv

opencv里有很多视频图像的处理功能。

UVC

Usb 视频类,免驱动的。视频流格式有MJPG和YUY2。MJPG是RGB三色通道的。要对三通道进行分屏显示。

代码

python 复制代码
import  cv2
import numpy as np
video = cv2.VideoCapture(0)
fps = video.get(cv2.CAP_PROP_FPS)
#print(fps)
size = (int(video.get(cv2.CAP_PROP_FRAME_WIDTH)), int(video.get(cv2.CAP_PROP_FRAME_HEIGHT)))
#print(size)

while True:
    ret, frame = video.read()
    channel0 = np.copy(frame)
    channel0[:,:,1] = 0
    channel0[:,:,2] = 0
    channel1 = np.copy(frame)
    channel1[:,:,0] = 0
    channel1[:,:,2] = 0
    channel2 = np.copy(frame)
    channel2[:,:,0] = 0#修改一列的值
    channel2[:,:,1] = 0

    vs1 = np.hstack([frame,channel0])  # 水平堆叠
    vs2 = np.hstack([channel1,channel2])  # 水平堆叠
    imgs = np.vstack((vs1, vs2))  # 竖直堆叠
    cv2.namedWindow("split screen",cv2.WINDOW_NORMAL)
    cv2.imshow("split screen", imgs)
    c = cv2.waitKey(1)#每隔1毫秒刷新一次
    if c == 27:#ESC
        break
video.release()
cv2.destroyAllWindows()

验证

视频流通道分屏的截屏

可以看到红色衣服在channel2红色通道里显示是清晰的。

后话

YUY2格式分屏。

相关推荐
17´9 分钟前
使用QT+OpenCV+C++完成一个简单的图像处理工具
c++·图像处理·qt·opencv
cnbestec19 分钟前
GelSight Mini视触觉传感器凝胶触头升级:增加40%耐用性,拓展机器人与触觉AI 应用边界
人工智能·机器人
bohu8325 分钟前
ros2-4.2 用python实现人脸识别
人工智能·opencv·人脸识别·ros2·服务调用
Loving_enjoy1 小时前
ChatGPT 数据分析与处理使用详解
大数据·人工智能
whaosoft-1431 小时前
51c自动驾驶~合集45
人工智能
刘大猫262 小时前
《docker基础篇:1.Docker简介》,包括Docker是什么、容器与虚拟机比较、能干嘛、去哪下
人工智能·操作系统·团队管理
hfmeet2 小时前
行为分析:LSTM、3D CNN、SlowFast Networks。这三者的优缺点
人工智能·cnn·lstm
小灰灰__2 小时前
LLM大模型实践10-聊天机器人
人工智能·chatgpt·机器人
MicrosoftReactor2 小时前
技术速递|通过 .NET Aspire 使用本地 AI 模型
人工智能·.net·.net aspire
Eric.Lee20212 小时前
不同方式获取音频时长 - python 实现
音视频·音频处理·音频时长·音频时长限制