资源简介
基于python3 opencv 视频采集,采用TCP协议进行双路视频传输,以及双显示界面实现
代码片段和文件信息
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author: K_liu
‘‘‘
这是一个客户端程序,由于需要显示两路视频画面,所以采用pygame来进行编写程序,Opencv界面可定制化没有pygame灵活
当然大家也可以采用python的其他GUI开发工具。
‘‘‘
import socket
import cv2
import struct
import numpy
import pygame
from pygame.locals import *
from sys import exit
global image1
global image2
# Configuration file
pygame.init() # 初始化pygame
window_size = (1280 480) # 设置显示界面大小
screen = pygame.display.set_mode(window_size 0 32) # pygame显示设置
pygame.display.set_caption(‘Two Camera Show‘) # 设置显示标题
pygame.display.flip()
clock = pygame.time.Clock()
def Get_image():
info = struct.unpack(“lhh“ client_socket.recv(8)) # 进行数据包解包操作
flag = info[1] # flag是为了辨别是那一路信号,采用0和1进行区分,详情请见服务器段程序
print(‘模拟指令:{}‘.format(info[2]))
buf_size = info[0] # 获取读的图片总长度
if buf_size:
try:
buf = b““ # 代表bytes类型
temp_buf = buf
while (buf_size): # 读取每一张图片的长度
temp_buf = client_socket.recv(buf_size)
buf_size -= len(temp_buf)
buf += temp_buf # 获取图片
data = numpy.fromstring(buf dtype=‘uint8‘) # 按uint8转换为图像矩阵
image = cv2.imdecode(data 1) # 图像解码
return image flag
except:
pass
def ShowImage():
while (1):
for event in pygame.event.get():
if event.type == QUIT:
exit()
frame flag = Get_image()
if flag == 0:
image1 = frame
flag1 = flag
frame1 = cv2.cvtColor(image1 cv2.COLOR_BGR2RGB)#将图片转换成RGB格式,Opencv采用的是BGR
frame1 = numpy.rot90(frame1)
frame1 = pygame.surfarray.make_surface(frame1) # 转换成pygame的背景格式
screen.blit(frame1 (0 0)) # 进行背景渲染
elif flag == 1:
image2 = frame
flag2 = flag
frame2 = cv2.cvtColor(image2 cv2.COLOR_BGR2RGB)
frame2 = numpy.rot90(frame2)
frame2 = pygame.surfarray.make_surface(frame2)
screen.blit(frame2 (6400))
pygame.display.update() # 刷新背景
if __name__ == ‘__main__‘:
addr_port = (‘127.0.0.1‘ 8080)
client_socket = socket.socket(socket.AF_INET socket.SOCK_STREAM)
client_socket.setsockopt(socket.SOL_SOCKET socket.SO_REUSEADDR 1) # 端口可复用
client_socket.connect(addr_port)
print(“IP is %s:%d“ % (addr_port[0] addr_port[1]))
ShowImage()
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2870 2018-08-01 18:05 双路视频传输系统\camera_change_client.py
文件 2537 2018-08-01 18:05 双路视频传输系统\camera_change_server.py
相关资源
- python+MySQL+bootstrap+ajax项目
- python模型restful接口
- Python3—EM&GMM;
- python+numpy实现自适应阈值分割函数O
- python+numpy实现均值滤波
- python代码实现录音
- 初学者练习python编程的100个小程序
- python入门到实践 外星人入侵项目代码
- 合并BN层的python脚本
- 语音读邮件的小程序python实现
- python入账管理系统源码
- python调用opencv实现人脸识别的简单D
- python界面GUI实现k-means聚类算法
- python版flappybird源码
- 简明Python教程.pdf
- Python的入门代码银行管理系统
- Python科学计算 张若愚 第二版-书及全
- Python实现Word批注转成脚注
- 商品管理系统python
- Honeywell树莓派读取扫枪扫码数据
- Tkinter
- Python 数据库编程入门教程
- 基于PCA的故障检测Python代码
- 根据epsg代号进行坐标的批量投影转换
- 基于python的图书管理系统
- Python操作Mysql教程手册高清完整PDF版
- pthon 高斯拟合
- 树莓派小车物体追踪
- python 黑白棋
- Python 获取USB摄像头图像,并二值化
评论
共有 条评论