python ord函数+ format函数 + array.array()函数

ord()

ord() 函数是 chr() 函数的配对函数,它以一个字符串(Unicode 字符)作为参数,返回对应的 ASCII 数值,或者 Unicode 数值。

ord('a')
>>> 97
chr(97)
>>> 'a'

.format()

{!r}.format()

  • !r: 将对象格式转化成repr
  • !a: 将对象格式转化成ASCII
  • !s: 将对象格式转化成str

array.array()

这是python中的数组模块,具有以下特性。

  • 计算机为数组分配一段连续的内存, 从而支持对数组随机访问

  • 由于地址连续,所以访问数组中任何一项的时间复杂度为O(1)

  • array模块是python中实现的一种高效的数组存储类型。它和list相似,但是所有的数组成员必须是同一种类型,在创建数组的时候,就确定了数组的类型

  • array.array(typecode,[initializer]) --typecode:元素类型代码;initializer:初始化器,若数组为空,则省略初始化器

  • 以下是array支持的初始化类型
    在这里插入图片描述

Python中,OpenCV (Open Source Computer Vision Library) 可以配合 GStreamer (一种跨平台多媒体框架) 来处理视频流。GStreamer允许你在多种协议、文件格式以及硬件设备间流畅地传递数据,包括网络摄像头、本地视频文件等。 下面是一个简单的示例,演示了如何使用OpenCV和GStreamer从视频源读取视频流: ```python import cv2 import gi gi.require_version('Gst', '1.0') from gi.repository import Gst, GObject # 初始化GStreamer上下文 GObject.threads_init() Gst.init(None) def on_new_sample(sink): sample = sink.emit("pull-sample") if not sample: return False # 获取样本的数据 buffer = sample.get_buffer() # 解析数据为图像 caps = sample.get_caps() width, height, format = caps.get_structure(0).get_ints("width", "height", "format") img_data = buffer.extract_dup(0, buffer.get_size()) # 转换数据为OpenCV可以使用的BGR格式 img_array = np.frombuffer(img_data, dtype=np.uint8) img_array = img_array.reshape((height, width, 3)) # BGR order # 显示图像 cv2.imshow("Video Stream", img_array) # 如果按下q键退出循环 if cv2.waitKey(1) & 0xFF == ord('q'): break # 创建播放器 pipeline pipeline_str = "v4l2src device=/dev/video0 ! video/x-raw,format=BGR ! omxh264dec ! videoconvert ! appsink" player = Gst.parse_launch(pipeline_str) sink = player.get_by_name("appsink") # 连接信号处理器 bus = player.get_bus() bus.add_signal_watch() bus.connect("message", on_new_sample) # 启动播放 player.set_state(Gst.State.PLAYING) try: # 等待播放完成 while player.query_state(Gst.QueryFlags.GET_STATE) == Gst.State.PLAYING: GObject.main_iteration() except: pass # 关闭和释放资源 player.set_state(Gst.State.NULL) bus.remove_signal_watch() cv2.destroyAllWindows() player.stop() player.release() ``` 这个脚本首先初始化GStreamer,然后创建一个从/dev/video0读取的视频源,通过H.264解码,转换格式并发送到appsink。`on_new_sample`函数会接收每帧新的数据,并将其显示在OpenCV窗口中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值