【问题标题】:wxPython, or PyGame canvas within wxPython -> which is faster?wxPython 或 wxPython 中的 PyGame 画布 -> 哪个更快?
【发布时间】:2012-08-05 21:34:47
【问题描述】:

我的目标是使用 OpenCV 尽可能高效地从网络摄像头捕获帧。目前,我能够使用标准绘图上下文 (BufferedPaintDC) 将 30FPS 6408*480 绘图直接捕获到 wxPython 面板上,CPU 使用率约为 15%(较旧的 Core Duo 处理器)。我很好奇的是,如果我在 wxPython 框架中嵌入 PyGame 画布并直接绘制到 PyGame 画布上,我会看到什么样的性能提升(如果有的话)。

我不确定瓶颈是否是 wxPython 框架,以及嵌入 PyGame 画布是否真的可以做任何事情。还是 wxPython 框架只是像一个容器一样,对 PyGame 画布没有影响?我希望我在这里说得通。

另一种选择是专门使用 PyGame,但我真的很喜欢 wxPython 小部件的功能,所以我不想失去它。

或者是否有更快的画布可以集成到我不知道的 wxPython 中?

想法?谢谢。

【问题讨论】:

  • 我想单独使用 PyGame 会比 wxPython 更快,因为 CPU 不必渲染 wxPython 画布和 PyGame 画布,而只需渲染 PyGame 画布。另外,我假设 6408*480 为 640*480,对吧?
  • 另外,我认为这可能与 如何 您正在执行绘制例程以及大部分是否在优化的 C 调用中完成有关跨度>
  • 是的 640*480,哈哈。我进行了几次测试,它出现在 OpenCV 中并直接绘制到 PyGame 画布上,我无法检测到效率的任何改进。也许坚持使用 wxPython 是最好的选择。

标签: python opencv wxpython pygame


【解决方案1】:

我不知道您为什么要将游戏库嵌入到 wxPython 中以期获得性能提升。就个人而言,我认为这不会发生。您应该查看 wxPython 提供的当前支持的绘图画布,或者解释您正在尝试做什么。人们已经在 wxPython 中完成了游戏...

不管怎样,今天wx的主要绘图接口是wx.GCDC/wx.GraphicsContext、cairo、FloatCanvas或者GLCanvas。当然还有wx.DC、wx.PaintDC和你找到的那个。

【讨论】:

  • PaintDC 在性能方面与 cairo 和 glcanvas 相比如何?我的目标是以最少的 CPU 使用率从网络摄像头以至少 30fps 的速度将帧绘制到画布上。我正在使用 PyGame 来捕获游戏手柄事件(在同一个应用程序中),所以我可以使用这个库,而且我听说它非常适合大量绘图。使用 bufferedpaintdc,每 25 毫秒绘制 600 条线会占用大量处理器周期,很好奇 PyGame 会是什么样子。我想如果使用 PyGame 绘制线条更有效,那么绘制图像也应该如此。感谢您的想法。
  • 我不太确定,因为我没有测试过。您应该在 wxPython Google 小组中询问其中一些库背后的开发人员居住在哪里。他们可以告诉你。
猜你喜欢
  • 2011-07-14
  • 1970-01-01
  • 2023-04-10
  • 2012-02-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-23
相关资源
最近更新 更多