如何使用 pyglet 显示 numpy 数组?

2024-01-16

我有一个尺寸为 (100*100) 的标签矩阵,存储为 numpy 数组,我想用 pyglet 显示该矩阵。

我最初的想法是使用这个矩阵通过函数 pyglet.image.ImageData() 形成一个新的 pyglet 图像。它需要图像数据的缓冲区作为输入,但是我不知道如何从 numpy 数组中获取正确格式的缓冲区。

有人有任何想法吗?

附:我当前的解决方案:

3d_label = numpy.empty([100,100,3])
3d_label[:,:,0] = label * 255            # value range of label is [0,1]
3d_label[:,:,1] = label * 255
3d_label[:,:,2] = label * 255
image_data = ctypes.string_at(id(3d_label.tostring())+20, 100*100*3)
image = pyglet.image.ImageData(100, 100, 'RGB', image_data, -100*3)

有没有更好的方法用 numpy 从 3 个 [100*100] 矩阵构造一个 [100*100*3] 矩阵?


我想你正在寻找的是np.dstack(或者更一般地说,np.concatenate):

label255=label*255
label3=numpy.dstack((label255,label255,label255))

由此可见dstack产生相同的数组(label3)作为您的构造label_3d:

import numpy as np

label=np.random.random((100,100))
label255=label*255
label3=np.dstack((label255,label255,label255))

label_3d = np.empty([100,100,3])
label_3d[:,:,0] = label * 255            # value range of label is [0,1]
label_3d[:,:,1] = label * 255
label_3d[:,:,2] = label * 255
print(np.all(label3==label_3d))
# True

附言。我不确定,但你尝试过使用label3.data代替ctypes.string_at(id(label3.tostring())+20, 100*100*3) ?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 pyglet 显示 numpy 数组? 的相关文章

  • Python - 将宽字符字符串从二进制文件转换为 Python unicode 字符串

    这是漫长的一天 我有点困惑 我正在读取一个包含大量宽字符字符串的二进制文件 我想将它们转储为 Python unicode 字符串 为了解压非字符串数据 我使用 struct 模块 但我不知道如何对字符串执行相同的操作 例如 阅读 系列 一
  • Python逻辑运算符优先级[重复]

    这个问题在这里已经有答案了 哪个运算符优先4 gt 5 or 3 lt 4 and 9 gt 8 这会被评估为真还是假 我知道该声明3 gt 4 or 2 lt 3 and 9 gt 10 显然应该评估为 false 但我不太确定 pyth
  • 从 ffmpeg 获取实时输出以在进度条中使用(PyQt4,stdout)

    我已经查看了很多问题 但仍然无法完全弄清楚 我正在使用 PyQt 并且希望能够运行ffmpeg i file mp4 file avi并获取流式输出 以便我可以创建进度条 我看过这些问题 ffmpeg可以显示进度条吗 https stack
  • 将数据帧行转换为字典

    我有像下面的示例数据这样的数据帧 我正在尝试将数据帧中的一行转换为类似于下面所需输出的字典 但是当我使用 to dict 时 我得到了索引和列值 有谁知道如何将行转换为像所需输出那样的字典 任何提示都非常感激 Sample data pri
  • Django 模型在模板中不可迭代

    我试图迭代模型以获取列表中的第一个图像 但它给了我错误 即模型不可迭代 以下是我的模型和模板的代码 我只需要获取与单个产品相关的列表中的第一个图像 模型 py class Product models Model title models
  • Argparse nargs="+" 正在吃位置参数

    这是我的解析器配置的一小部分 parser add argument infile help The file to be imported type argparse FileType r default sys stdin parser
  • Pandas 中允许重复列

    我将一个大的 CSV 包含股票财务数据 文件分割成更小的块 CSV 文件的格式不同 像 Excel 数据透视表之类的东西 第一列的前几行包含一些标题 公司名称 ID 等在以下列中重复 因为一家公司有多个属性 而不是一家公司只有一栏 在前几行
  • 按元组分隔符拆分列表

    我有清单 print L I WW am XX newbie YY ZZ You WW are XX cool YY ZZ 我想用分隔符将列表拆分为子列表 ZZ print new L I WW am XX newbie YY ZZ You
  • 首先对列表中最长的项目进行排序

    我正在使用 lambda 来修改排序的行为 sorted list key lambda item item lower len item 对包含元素的列表进行排序A1 A2 A3 A B1 B2 B3 B 结果是A A1 A2 A3 B
  • Pandas 根据 diff 列形成簇

    我正在尝试使用 Pandas 根据表示时间 以秒为单位 的列中的差异来消除数据框中的一些接近重复项 例如 import pandas as pd numpy as np df pd DataFrame 1200 1201 1233 1555
  • 如何使用列表作为pandas数据框中的值?

    我有一个数据框 需要列的子集包含具有多个值的条目 下面是一个带有 运行时 列的数据框 其中包含程序在各种条件下的运行时 df condition a runtimes 1 1 5 2 condition b runtimes 0 5 0 7
  • Python 将日志滚动到变量

    我有一个使用多线程并在服务器后台运行的应用程序 为了无需登录服务器即可监控应用程序 我决定包括Bottle http bottlepy org为了响应一些HTTP端点并报告状态 执行远程关闭等 我还想添加一种查阅日志文件的方法 我可以使用以
  • 使用yield 进行字典理解

    作为一个人为的例子 myset set a b c d mydict item yield join item s for item in myset and list mydict gives as cs bs ds a None b N
  • 如何为每个屏幕添加自己的 .py 和 .kv 文件?

    我想为每个屏幕都有一个单独的 py 和 kv 文件 应通过 main py main kv 中的 ScreenManager 选择屏幕 设计应从文件 screen X kv 加载 类等应从文件 screen X py 加载 Screens
  • Ubuntu 上的 Python 2.7

    我是 Python 新手 正在 Linux 机器 Ubuntu 10 10 上工作 它正在运行 python 2 6 但我想运行 2 7 因为它有我想使用的功能 有人敦促我不要安装 2 7 并将其设置为我的默认 python 我的问题是 如
  • 在Python中按属性获取对象列表中的索引

    我有具有属性 id 的对象列表 我想找到具有特定 id 的对象的索引 我写了这样的东西 index 1 for i in range len my list if my list i id specific id index i break
  • 具有自定义值的 Django 管理外键下拉列表

    我有 3 个 Django 模型 class Test models Model pass class Page models Model test models ForeignKey Test class Question model M
  • 字典和数组作为类变量与实例变量

    这是赚取积分的简单方法 请解释以下内容 class C a b 0 c def init self self x def d self k v self x k v self a k v self b v self c append v d
  • 如何读取Python字节码?

    我很难理解 Python 的字节码及其dis module import dis def func x 1 dis dis func 上述代码在解释器中输入时会产生以下输出 0 LOAD CONST 1 1 3 STORE FAST 0 x
  • Scrapy Spider不存储状态(持久状态)

    您好 有一个基本的蜘蛛 可以运行以获取给定域上的所有链接 我想确保它保持其状态 以便它可以从离开的位置恢复 我已按照给定的网址进行操作http doc scrapy org en latest topics jobs html http d

随机推荐

  • 将文本在同一表格单元格中垂直和水平居中,图像向左浮动

    我知道这看起来可能是一个小问题 只是感觉应该有一个简单的解决方案 我有一种感觉 我很 SOL 但我想我应该先问一下 http jsfiddle net bczengel FSDz9 5 http jsfiddle net bczengel
  • 在 R 中使用函数参数定义全局变量

    我正在尝试在 R 中编写一个函数 该函数从数据框中删除列并返回新数据 其名称指定为函数的参数 drop lt function my data col new data new data lt lt my data col return n
  • Firefox 不尊重用户媒体(首选颜色方案:深色)

    我正在使用 MediaWiki 的 Timeless CSS 进行媒体查询 media prefers color scheme dark 为了向在操作系统级别选择深色模式的用户显示深色站点版本 当我通过 Windows 切换深色或浅色模式
  • NSInvocableOperation 和 NSBlockOperation 有什么区别

    Foundation Framework中共有三个操作类 NSOperation NSInvocationOperation and NSBlockOperation 我已经读过并发编程指南 https developer apple co
  • threading.Timer - 每“n”秒重复一次函数

    我想每 0 5 秒触发一个函数 并且能够启动 停止和重置计时器 我不太了解 Python 线程的工作原理 并且在使用 Python 计时器时遇到困难 然而 我不断得到RuntimeError threads can only be star
  • 使用 OrientDB 递归遍历有向边

    我正在尝试从给定节点递归遍历出站边缘 而不是入站边缘 我想要查询结果中包含出边和出顶点 下图中 从 a 开始 我需要 a b c d e 包括边缘 但不包括 c 之后的部分 即 lt x a gt b gt c lt x gt d gt e
  • 跟踪嵌入的 YouTube 视频观看次数

    我在我的网站中嵌入了一些 YouTube 视频 我想使用 google Analytics 跟踪每个视频的观看次数 但我无法捕获任何 onClick 事件 因为视频是使用 iFrame 嵌入的 如何使用 iFrame 跟踪嵌入在我的网页中的
  • React-router 链接不起作用

    React router 的起步非常糟糕 看起来基本的东西不起作用 使用react router 2 0 0我的Link组件将URL更新为 about 但我的页面在那之后不会渲染About组件 入口点js var React require
  • 使用 Moq 模拟 EF DbContext

    我正在尝试使用模拟的 DbContext 为我的服务创建单元测试 我创建了一个界面IDbContext具有以下功能 public interface IDbContext IDisposable IDbSet
  • 跨浏览器 nowrap 文本区域

    我正在寻找一种跨浏览器解决方案 文本区域 文字换行only输入时 滚动条都隐藏 直到文本溢出 我已经尝试了几乎所有可以在SO中找到的东西 失败 1 textarea white space nowrap overflow auto 在 FF
  • 最好的免费测试跟踪软件是什么? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Vuejs 和 Vue.set(),更新键/值数组

    我想弄清楚如何this set aka Vue set api 在使用它更新多维数组时起作用 Given new Vue el app data rows id 4 edit true id 5 edit false 我将如何使用 this
  • 为什么 data.tables mutate(row_number()) 失败?

    当我尝试使用时row number from dplyr在 data table 上 它会抛出错误 这是一个例子 library dplyr library data table mine lt data table a 1 10 mine
  • 通过正则表达式解析CSS

    我正在创建一个 CSS 编辑器 并尝试创建一个可以从 CSS 文档获取数据的正则表达式 如果我有一个属性 则此正则表达式有效 但无法让它适用于所有属性 我在 PHP 中使用 preg perl 语法 Regex
  • 有人使用过 __COUNTER__ 预处理器宏吗?

    The COUNTER 符号由提供VC http msdn microsoft com en us library b0084kay VS 80 aspx和GCC 并且每次使用时都会给出一个递增的非负积分值 我有兴趣了解是否有人使用过它 以
  • 如何找出当前的溢出检查上下文?

    有没有办法在 C 中做到这一点 例如 如果调用您的方法并且您想知道调用者是否已将方法调用放入已检查的块中 checked unchecked块始终是方法的本地块 关键字影响如何为块中的语句和表达式生成 IL 它不会传播到调用的方法 并且无法
  • 如何在 Google Drive 上为 Google Colab 安装 conda?

    wget https repo anaconda com miniconda Miniconda3 py37 4 8 2 Linux x86 64 sh chmod x Miniconda3 py37 4 8 2 Linux x86 64
  • Linq、表达式、NHibernate 和 Like 比较

    我试图根据确定比较类型的外部参数 通过搜索表单传递 进行类似的比较 string or string or string 我朝以下方向思考 query query Where Entity StringProperty Like Searc
  • setItemWidget 导致崩溃

    我正在尝试添加一个QLabel to a QTreeWidgetItem但Python崩溃了setItemWidget call 有什么想法为什么会崩溃吗 这是代码 from PySide import QtCore QtGui view
  • 如何使用 pyglet 显示 numpy 数组?

    我有一个尺寸为 100 100 的标签矩阵 存储为 numpy 数组 我想用 pyglet 显示该矩阵 我最初的想法是使用这个矩阵通过函数 pyglet image ImageData 形成一个新的 pyglet 图像 它需要图像数据的缓冲